このコマンドを使用してMavenで単一のテストを実行すると:
mvn test -Dtest=InitiateTest
次の結果が得られます。
No tests were executed!
数分前は動作していましたが、何らかの理由で動作を停止しました。テストを実行する前にmvn clean
を数回実行してみましたが、役に立ちません。
テストは次のようになります。
import org.openqa.Selenium.*;
import org.openqa.Selenium.firefox.FirefoxDriver;
import org.openqa.Selenium.support.ui.Select;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class InitiateTest {
public static FirefoxDriver driver;
@Before
public void setUp() throws Exception {
driver = new FirefoxDriver();
}
@Test
public void initiateTest() throws Exception {
driver.get("http://localhost:8080/login.jsp");
...
}
@After
public void tearDown() throws Exception {
driver.close();
}}
更新:
これは、この依存関係をPOMに追加したことが原因です。
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium</artifactId>
<version>2.0b1</version>
<scope>test</scope>
</dependency>
取り外すと、すべて正常に動作します。前の依存関係の代わりに次の2つの依存関係を追加しても、すべて正常に機能します。
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-support</artifactId>
<version>2.0b1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-firefox-driver</artifactId>
<version>2.0b1</version>
<scope>test</scope>
</dependency>
これは変です。
クラスパスのどこかでJUnit3を取得している可能性があります。これにより、JUnit4が事実上無効になります。
Mvndependency:treeを実行して、それがどこから来ているのかを調べ、依存関係に除外を追加します。
おそらくあなたは見ているでしょう このバグ、 これはsurefire 2.12に影響を与えると言われていますが、2.11には影響を与えませんか?
私も同じ問題を抱えていました。これは、junit3に付属のtestng依存関係が原因でした。除外ステートメントを追加するだけで、テストが機能するはずです。
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium</artifactId>
<version>2.0b1</version>
<exclusions>
<exclusion>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
</exclusion>
</exclusions>
</dependency>
「maven-surefire-plugin」を2.14.1バージョン(2.12から)に変更しました。
同様の問題がありました。だから私はプロジェクトのルートレベルからプロジェクトをビルドするを使用する必要がありました
mvn clean install -DskipTests=True
そしてテストパッケージのpomが存在していたディレクトリからテストコマンドを実行します
mvn test -Dtest=TestClass
また、スキップオプションの値がtrueであることを確認してください。たとえば、私のpomファイルでは、skipのデフォルト値はtrueです。
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>${skipTests}</skip>
</configuration>
</plugin>
</build>
したがって、Mavenテストを実行するときは、falseに設定します
mvn test -Dtest=TestUserUpdate* -DskipTests=false
2.6から2.18.1に変更され、現在は機能しています
Jtestrの依存関係を追加するときに同様の問題が発生しました。その依存関係の1つはjunit-3.8.1をピックアップしていたことが判明しました。以下の除外ステートメントを使用して解決しました
<dependency>
<groupId>org.jtestr</groupId>
<artifactId>jtestr</artifactId>
<exclusions>
<exclusion>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
</exclusion>
</exclusions>
<version>0.6</version>
<scope>test</scope>
</dependency>
私の場合、mvn test -Dtest = MyTestを使用して単一のテストを実行していました。私の間違いは、唯一のテストで@testアノテーションがコメント化されていたため、junitによってファイル内にテストが見つからなかったということでした。ドー!
Pom.xmlのビルドセッションに、これを含めます。
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14.1</version>
</plugin>
</plugins>
</build>
org.Apache.maven.plugins:maven-surefire-pluginを2.22.0に更新すると、解決されました。
デバッグモードでMavenを実行してみてください。それはあなたにもっと多くの情報を与えるかもしれません。
mvn -X -Dtest=InitiateTest test