カスタマイズされた日食スタジオプロジェクトがあります。ユニットテストでは、-の下にテストファイルを作成しています。
TestJavaSrc/demoTest.java
これで、このTestJavaSrcフォルダーはPOM.xmlと同じレベルになります。これがPOM.xmlです-
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.demo.test</groupId>
<artifactId>demo</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
</plugin>
</plugins>
</build>
</project>
このプロジェクトをmvntestとして実行すると、テストファイルが見つかりません。また、コマンドラインで次のコマンドを実行すると-
mvn "-Dtest=TestJavaSrc/DemoTest.java" test
それは私にエラーを与えます-
Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test
(default-test) on project demo: No tests were executed!
(Set -DfailIfNoTests=false to ignore this error.) -> [Help 1]
また、クラスパスにJUnit4があります
足りないものはありますか?
Mavenの標準ディレクトリレイアウトでは、Javaで記述された単体テストは次の場所に配置する必要がありますsrc/test/java
。
src
ディレクトリには、プロジェクトを構築するための原料、そのサイトのと、上のようにすべてが含まれています。これには、各タイプのサブディレクトリが含まれています。main
メインビルドアーティファクト、test
単体テストコードとリソース、サイトなどです。
そのため、Surefireプラグインは、まさにそのフォルダーにあるテストを実行します。これは、testSourceDirectory
パラメーターを介して構成できます。このディレクトリは、すべてのテストを含むベースソースディレクトリであることに注意してください。つまり、そのベースディレクトリがsomedir
ありDemoTest.java
、パッケージ内にあると宣言された、というJavaクラスfoo.bar
がある場合、ディスク上のファイルはに配置する必要がありsomedir/foo/bar/DemoTest.java
ます。
ここに、test
(誤って)使用しているパラメーターが入力されます。名前のみで実行するJavaクラスを選択します。パッケージ宣言やディスク上のファイルの場所によるものではありません。
テストクラスをその標準ディレクトリに配置することをお勧めしますが、本当にこれを実行したい場合は、複数のオプションがあります。
TestJavaSrc
Mavenプロジェクトのベースディレクトリにある単一のテストソースディレクトリが必要な場合は、POMで次のように構成できます。
<build>
<testSourceDirectory>${project.basedir}/TestJavaSrc</testSourceDirectory>
</build>
その唯一のテスト専用の特別なディレクトリsrc/test/java
が必要な場合、つまりデフォルトを維持したいが、この新しいソースディレクトリをさらに検討したい場合add-test-source
は、Build HelperMavenプラグインの目標を使用できます。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.12</version>
<executions>
<execution>
<id>add-test-source</id>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>TestJavaSrc</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
どちらのアプローチも、demoTest.java
そのフォルダーのすぐ下にあるファイルがデフォルトのパッケージに含まれることを意味するため、package
宣言を含めてはならないことに注意してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加