IntelliJで単体テストを実行すると、次のエラーが表示されます。エラー:メインクラス$ {surefireArgLine}を見つけることができませんでした。私はmavenを使用しており、pom.xmlで次のことを行っています。
<properties>
...
<surefire.argLine />
</properties>
<build>
<plugins>
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.1.1</version>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/Java</outputDirectory>
<processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<!--Sets the VM argument line used when unit tests are run.-->
<argLine>${surefire.argLine}</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.1.201405082137</version>
<executions>
<!--
Prepares the property pointing to the JaCoCo runtime agent which
is passed as VM argument when Maven the Surefire plugin is executed.
-->
<execution>
<id>pre-unit-test</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<!--Sets the path to the file which contains the execution data.-->
<destFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</destFile>
<!--
Sets the name of the property containing the settings
for JaCoCo runtime agent.
-->
<propertyName>surefireArgLine</propertyName>
</configuration>
</execution>
...
誰もが同様の問題を抱えていましたか? surefireArgLineの値を設定する方法は?
IDEから直接ではなくmvn -Dtest = TestCircle testを使用してmavenからテストケースを実行する必要があることがわかりました。
私は同じ問題を抱えていたので、 vertx-issue tracker で解決策を見つけたと思います。
要するに、IntelliJ Maven(surefireプラグイン)統合を異なる動作に設定する必要があります。
これを行うには:Preferences -> Build,Execution,Deployment -> Build Tools -> Maven -> Running Tests
argLine
のチェックを外します
これはmvn 3.3.9のIntelliJ 14.1.6で動作します
Surefire-pluginバージョンを2.10に変更して削除することで、Netbeansでこのエラーを修正できました。
<argLine>-Xmx1024m -XX:MaxPermSize=256m ${argLine}</argLine>
maven-surefire-plugin構成から。代わりに、surefireによって自動的に選択されるargLineプロパティを作成しました。
<properties>
<argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.10</version>
</plugin>
これで、単一のファイルとテストメソッドを実行およびデバッグできます。また、コードカバレッジは期待どおりに機能しています。
Pom.xmlを更新することで問題が解決しました。
<argLine>${surefire.argLine}</argLine>
Pom.xmlの完全なプラグイン情報
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<parallel>classes</parallel>
<threadCount>10</threadCount>
<workingDirectory>${project.build.directory}</workingDirectory>
<jvm>${env.JDK1_8_HOME}\bin\Java</jvm>
<argLine>${surefire.argLine}</argLine>
</configuration>
<dependencies>
<dependency>
<groupId>org.Apache.maven.surefire</groupId>
<artifactId>surefire-junit4</artifactId>
<version>2.18.1</version>
</dependency>
</dependencies>
</plugin> -->
これを探していて、このプロジェクトがこれで「修正」されていることがわかりました thread
基本的に、空のプロジェクトプロパティとしてjacocoArgLine変数名を定義します。次に、確実な設定では、ドル記号の代わりに@ {jacocoArgLine}を使用します。