Test Arquillian - cannot deploy

0
import entities.Person;
import javax.inject.Inject;
import managers.PersonManager;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;

/**
 *
 * @author Bartosz
 */
@RunWith(Arquillian.class)
public class arquillianTest {

    @Deployment
    public static WebArchive deployService() {
        return ShrinkWrap.create(WebArchive.class)
                .addClass(PersonManager.class);
    }

    @Inject
    private PersonManager manager;

    @Test
    public void shouldGreetTheWorld() throws Exception {
        Person p = new Person("Imie", "Nazwisko", 12);
        manager.create(p);
        Assert.assertEquals("Imie", manager.find(p).getName());
        Assert.assertEquals("Nazwisko", manager.find(p).getSurname());
        Assert.assertEquals("12", manager.find(p).getAge());
    }
}
@Stateless
@LocalBean
public class PersonManager extends AbstractManager<Person>{
    
    public PersonManager() {
        super(Person.class);
}
    }
public abstract class AbstractManager<T> {

    private Class<T> entityClass;

    @PersistenceContext(name = "proj3_war_1.0-SNAPSHOTPU")
    EntityManager entityManager;

    public AbstractManager(Class<T> entityClass) {
        this.entityClass = entityClass;
    }

    public void create(T entity) {
        entityManager.persist(entity);
    }

    public T find(Object id) {
        return entityManager.find(entityClass, id);
    }

}

bład :

aac72aa253.png

0

Na pewno zapomniałeś dodać klas Person, AbstractManager i pliku persistence.xml. Powinno być jakoś tak:

@Deployment
public static Archive<?> deployService() {
	return ShrinkWrap.create(WebArchive.class)
                .addClasses(PersonManager.class, AbstractManager.class, Person.class)
                .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
                .addAsResource("META-INF/persistence.xml")
                ;
}

Musisz też dodać odpowiednie zależności do pom.xml i ustawienia w arquilian.xml

0

4eaa6a32e9.png

nie wiem dlaczego wystepuje nullpointer

d890e5de01.png

0

Ta linia wyrzuca bład NullPoiterException

d70b7a2591.png

masz jakis pomysł dlaczego tak jest?

0

Pewnie PersonManager się nie wstrzykuje. Jakiego serwera aplikacyjnego używasz, i w jakim trybie deployujesz (remote/embeded/managed) ? Ja preferuję remote.

0

To wystarczy?

c108ebab51.png

0

Przekopiuje ci po prostu ustawienia jednego z moich programów:

aplikacja/src/test/resources/arquillian.xml :

<?xml version="1.0"?>
<arquillian xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://jboss.org/schema/arquillian"
            xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
    
    <container qualifier="wildfly" default="true" >
        <configuration>
            <property name="managementAddress">127.0.0.1</property>
            <property name="managementPort">9990</property>
            <property name="username">admin</property>
            <property name="password">mypassword</property>
        </configuration>
    </container>   
    
</arquillian>

dodać do pom.xml:

<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.jboss.arquillian</groupId>
            <artifactId>arquillian-bom</artifactId>
            <version>1.1.10.Final</version>
            <scope>import</scope>
            <type>pom</type>
		</dependency>
		<dependency>
			<groupId>org.jboss.shrinkwrap.resolver</groupId>
			<artifactId>shrinkwrap-resolver-bom</artifactId>
			<version>2.2.0</version>
			<scope>import</scope>
			<type>pom</type>
		</dependency>
	</dependencies>
</dependencyManagement>

<dependencies>
	<!-- bez tego nie dzialaja testy na jboss -->
    <dependency>
		<groupId>org.jboss.logging</groupId>
        <artifactId>jboss-logging</artifactId>
        <version>3.3.0.Final</version>
    </dependency>
    <dependency>
		<groupId>org.wildfly.arquillian</groupId>
        <artifactId>wildfly-arquillian-container-remote</artifactId>
        <version>1.0.0.Final</version>
        <scope>test</scope>
	</dependency>
	<dependency>
		<groupId>org.jboss.arquillian.junit</groupId>
		<artifactId>arquillian-junit-container</artifactId>
	</dependency>
	<dependency>
		<groupId>org.jboss.shrinkwrap.resolver</groupId>
		<artifactId>shrinkwrap-resolver-depchain</artifactId>
		<type>pom</type>
		<scope>test</scope>
	</dependency>
	<dependency>
		<groupId>org.jboss.arquillian.container</groupId>
		<artifactId>arquillian-container-test-api</artifactId>
	</dependency>				
</dependencies>

1 użytkowników online, w tym zalogowanych: 0, gości: 1