2016-09-03 10 views
1

저는 JBoss EAP 6.1을 사용하여 Java EE 응용 프로그램을 개발 중입니다.Arquillian이 JBOSS에 war 폴더를 배포하지 않습니다.

Arquillian을 사용하여 테스트를 실행하면 테스트에 삽입 된 메소드를 사용하는 동안 항상 null 포인터 예외가 발생하며 ShrinkWrap이 클래스와 함께 war 폴더를 만들 수 없다는 것을 알아 냈습니다.

이것은 내 Arquillian shrink 랩으로 war 폴더를 만들지 않습니다.

@Deployment(name = "Test") 
@OverProtocol("Servlet 3.0") 
public static Archive<?> createDeployment() { 

    WebArchive archive = ShrinkWrap 
      .create(WebArchive.class, "test_archive.war") 
      .addClass(ArquillianTest.class) 
      .addPackages(true, "it.payroll.model") 
      .addPackages(true, "it.payroll.dao") 
      .addPackages(true, "it.payroll.controller") 
      .addAsResource("META-INF/persistence.xml") 
      .addAsWebInfResource(EmptyAsset.INSTANCE, 
        ArchivePaths.create("beans.xml")); 

    archive.as(ZipExporter.class).exportTo(
      new File("target/test_archive.war"), true); 

    return archive; 
} 

도움 주셔서 감사합니다.

답변

0

작업 파일

@ArquillianSuiteDeployment 
public class ArquillianDeploymentHelper { 

public static final String DEPLOYMENT_NAME = "test"; 

private static final Logger LOGGER = LoggerFactory.getLogger(ArquillianDeploymentHelper.class); 

private static final String WEBAPP_SRC = "src/main/webapp"; 
private static final String TEST_RESOURCES_SRC = "src/test/resources"; 
private static final String POM_FILE = "pom.xml"; 
private static final String ARCHIVE_NAME = "arquillian-test.war"; 

@Deployment(name = DEPLOYMENT_NAME) 
public static Archive<?> generateDefaultDeployment() { 

    // Generate the default WAR used by all *IT tests using @OperateOnDeployment("test") annotation 
    LOGGER.info("Generating " + ARCHIVE_NAME + " archive ..."); 

    PomEquippedResolveStage pom = Maven.resolver().loadPomFromFile(POM_FILE); 
    ScopeType[] scopes = {ScopeType.COMPILE, ScopeType.IMPORT, ScopeType.TEST}; // no SYSTEM and no PROVIDED 
    File[] libs = pom.importDependencies(scopes).resolve().using(TransitiveStrategy.INSTANCE).asFile(); 

    WebArchive archive = ShrinkWrap.create(WebArchive.class, ARCHIVE_NAME) 
      .addAsLibraries(libs) 
      //.addAsResource(new File(TEST_RESOURCES_SRC, "test-configuration.properties"), "configuration.properties") 
      .addPackages(true, "com.test") 
      //.addAsWebInfResource(new File(WEBAPP_SRC, "WEB-INF/web.xml")) 
      .addAsWebInfResource(new File(WEBAPP_SRC, "WEB-INF/beans.xml")) 
      .addAsWebInfResource(new File(WEBAPP_SRC, "WEB-INF/jboss-web.xml")) 
      .addAsWebInfResource(new File(TEST_RESOURCES_SRC, "persistence.xml"), "classes/META-INF/persistence.xml"); 
      //.addAsManifestResource(new File(WEBAPP_SRC, "META-INF/jboss-deployment-structure.xml")); 

    // No need to log the content anymore, the archive is kept in target directory 
    // "deploymentExportPath" variable in arquillian.xml 
    // LOGGER.info(archive.toString(true)); 

    LOGGER.info(archive.toString(true)); 

    return archive; 
} 
}