2016-05-26 18 views
0

私の統合テストのコードカバレッジを検証したいと思います。私はいくつかのRESTサービスを実装し、それらをWildly 9.0.2に配備しました。それから、私はIDEAカバレッジランナーでIntelliJのカバレッジをトレースサポートに設定しました。カバレッジ統合テストIntelliJ on Wildfly

16:20:53,103 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC000001: Failed to start service jboss.deployment.unit."myservice-war-1.0.0-SNAPSHOT.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."myservice-war-1.0.0-SNAPSHOT.war".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of deployment "myservice-war-1.0.0-SNAPSHOT.war" 
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:163) 
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) 
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.NoClassDefFoundError: com/intellij/rt/coverage/data/ProjectData 
at de.akquinet.ats.myservice.rest.services.MyUpdateService.<clinit>(MyUpdateService.java) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:348) 
at org.jboss.invocation.proxy.AbstractProxyFactory.afterClassLoad(AbstractProxyFactory.java:95) 
at org.jboss.invocation.proxy.AbstractClassFactory.defineClass(AbstractClassFactory.java:166) 
at org.jboss.invocation.proxy.AbstractProxyFactory.getCachedMethods(AbstractProxyFactory.java:150) 
at org.jboss.as.ejb3.component.stateless.StatelessComponentDescription$3.configure(StatelessComponentDescription.java:150) 
at org.jboss.as.ee.component.DefaultComponentViewConfigurator.configure(DefaultComponentViewConfigurator.java:67) 
at org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:81) 
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:156) 
... 5 more 
Caused by: java.lang.ClassNotFoundException: com.intellij.rt.coverage.data.ProjectData from [Module "deployment.myservice-war-1.0.0-SNAPSHOT.war:main" from Service Module Loader] 
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205) 
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:455) 
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:404) 
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:385) 
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:130) 
... 15 more 

    16:20:53,106 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 2) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "myservice-war-1.0.0-SNAPSHOT.war")]) - failure description: { 
    "WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"myservice-war-1.0.0-SNAPSHOT.war\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"myservice-war-1.0.0-SNAPSHOT.war\".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of deployment \"myservice-war-1.0.0-SNAPSHOT.war\" 
    Caused by: java.lang.NoClassDefFoundError: com/intellij/rt/coverage/data/ProjectData 
    Caused by: java.lang.ClassNotFoundException: com.intellij.rt.coverage.data.ProjectData from [Module \"deployment.myservice-war-1.0.0-SNAPSHOT.war:main\" from Service Module Loader]"}, 
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [ 
     "jboss.deployment.unit.\"myservice-war-1.0.0-SNAPSHOT.war\".batch.environment is missing [jboss.deployment.unit.\"myservice-war-1.0.0-SNAPSHOT.war\".beanmanager]", 
     "jboss.deployment.unit.\"myservice-war-1.0.0-SNAPSHOT.war\".weld.weldClassIntrospector is missing [jboss.deployment.unit.\"myservice-war-1.0.0-SNAPSHOT.war\".beanmanager]" 
    ] 
} 
    16:20:53,107 ERROR [org.jboss.as.server] (management-handler-thread - 2) WFLYSRV0021: Deploy of deployment "myservice-war-1.0.0-SNAPSHOT.war" was rolled back with the following failure message: 
{ 
    "WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"myservice-war-1.0.0-SNAPSHOT.war\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"myservice-war-1.0.0-SNAPSHOT.war\".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of deployment \"myservice-war-1.0.0-SNAPSHOT.war\" 
    Caused by: java.lang.NoClassDefFoundError: com/intellij/rt/coverage/data/ProjectData 
    Caused by: java.lang.ClassNotFoundException: com.intellij.rt.coverage.data.ProjectData from [Module \"deployment.myservice-war-1.0.0-SNAPSHOT.war:main\" from Service Module Loader]"}, 
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [ 
     "jboss.deployment.unit.\"myservice-war-1.0.0-SNAPSHOT.war\".batch.environment is missing [jboss.deployment.unit.\"myservice-war-1.0.0-SNAPSHOT.war\".beanmanager]", 
     "jboss.deployment.unit.\"myservice-war-1.0.0-SNAPSHOT.war\".weld.weldClassIntrospector is missing [jboss.deployment.unit.\"myservice-war-1.0.0-SNAPSHOT.war\".beanmanager]" 
    ] 
} 

私はのIntelliJ IDEAに2016年1月2日 ビルド#IU-145.972を使用しています、2016年5月14日 JREの上に構築された:私は今、カバレッジとWildflyを起動すると、戦争の展開は、次のシュトラックのトレースで失敗します。 1.8.0_76-リリース-B162 x86_64版 JVM:JetBrainsのsro社によるOpenJDKの64ビットサーバーVM

私はClassNotFoundExceptionがあり、通常はその後、何をすべきか知っていることを十分に承知していますが、ここで私は...

をスタックしています

誰でも助けてもらえますか?

+0

IntelliJ 2016.1.3、JRE 1.8.0_91 OSと同じUbuntuを使用していますか? – MoYapro

+0

いいえ、私はOS X El Capitan(バージョン10.11.5(15F34))を使用しています – Martin

+0

コードカバレッジタブの実行設定で異なるカバレッジランナーを選択してカバレッジを取得できました。 – MoYapro

答えて

0

org.wildfly.arquillianので現在のところ、あるIntelliJ IDEAカバレッジ剤を用いることかのうではありません。wildfly-arquillian-コンテナ組み込み:2.0.0.Finalシステムパッケージを設定するための任意のプロパティを持っていませんjboss.modules.system.pkgsシステムプロパティ)。 IntelliJのIDEAカバレッジ・エージェントを使用する

唯一の方法は、EmbeddedContainerConfigurationEmbeddedDeployableContainerクラスを変更し、その後、あなたは、これらのカスタマイズされたクラスを使用する必要があります。

私はalredyがプルリクエストをしました。私は新しいバージョンがすぐに無効になることを願っています。

public class EmbeddedContainerConfiguration extends CommonContainerConfiguration { 

    private String systemPackages = System.getProperty("jboss.modules.system.pkgs"); 

    public String getSystemPackages() { 
     return systemPackages; 
    } 

    public void setSystemPackages(String systemPackages) { 
     this.systemPackages = systemPackages; 
    } 

    public String[] getSystemPackagesArray() { 
     return (systemPackages == null || systemPackages.isEmpty()) ? null : systemPackages.split(","); 
    } 

} 


public final class EmbeddedDeployableContainer extends CommonDeployableContainer<EmbeddedContainerConfiguration> { 

    @Override 
    public void setup(final EmbeddedContainerConfiguration config) { 
     super.setup(config); 
     if (config.getCleanServerBaseDir() != null) { 
      SecurityActions.setSystemProperty(EmbeddedStandaloneServerFactory.JBOSS_EMBEDDED_ROOT, config.getCleanServerBaseDir()); 
     } 
     final String[] cmdArgs = getCommandArgs(config); 
     server = EmbeddedProcessFactory.createStandaloneServer(config.getJbossHome(), config.getModulePath(), config.getSystemPackagesArray(), cmdArgs); 
    } 

}