Intellij IDEA 2016.3。foo
メソッドを持つクラスと、Java.lang.Exception: No tests found matching Method foo
テストの実行時。 mvn test
成功し、mvnコマンドを実行した直後にユニットテストを実行すると、突然緑色になります。 IDEAは自動的にコンパイルされません。どうすれば修正できますか?
追伸バージョン2016.3にアップグレードした後、設定は変更されませんでした
Gradle(4.5+)+新しい Build Cache 機能で得た同じ問題
時々、新しいテストメソッドを見つけることができず、例外をスローします(トピックで述べたように)
解決策:clean .gradle
、build
およびout
ディレクトリを選択して、もう一度試してください;)
Junit's や Robolectric's などの理論テストフレームワークを使用している場合は、テスト自体ではなく、目的のテストを含むクラスを実行してください。これらのフレームワークは、静的メソッドではなくインスタンスメソッドとしてテストメソッドを使用するため、通常のpublic static
テストでは何も見つかりません。
Intellijのoutディレクトリを削除すると、この問題は修正されました。
最初に「foo」という名前のテストを実行し、それを「fooBar」に名前変更した場合、その後、新しい実行構成で「fooBar」を実行する必要があります。
「foo」に対して同じ元の実行構成を使用して「fooBar」を実行する場合、「foo」という名前のテストが検索されますが、「fooBar」に名前が変更されたため、検出されません(したがって、例外)。新しい実行構成は、「fooBar」テストを正しく検索します。
テストの名前を変更したため、このエラーを知らずに犯しましたが、IntelliJの緑色の実行ボタンをクリックしました。
ここでの他の回答に加えて、テストメソッドの宣言の前に@Test
を忘れた場合にもエラーが発生する可能性があります。 IntelliJ(2018.1)では、テスト実行用の緑色の「Play-Button」が引き続き表示されますが、Test-Classのパブリックメソッドは実際のテストではありません。
たぶん、テストメソッドに間違った名前を付けただけかもしれません。
この問題に遭遇したのは、intelliJが表現できない「_」の代わりに「—」を使用したためです。
この状況は、@Test
テストメソッドの上の注釈。
クラスの上記のランナーが正しいことを確認してください。
ランナーCucumberWithSerenity.class
を使用していたときに、この奇妙なメッセージが表示されていました。 SerenityRunner.class
に変更すると、修正されました。
@RunWith(SerenityRunner.class)
//@RunWith(CucumberWithSerenity.class)
public class WordPressAppTest {
私はWeb自動化にSerenityフレームワークを使用しており、ランナークラス以下で使用しています
import net.serenitybdd.cucumber.CucumberWithSerenity;
import net.serenitybdd.junit.runners.SerenityRunner;
import org.junit.runner.RunWith;
IDEA(2017.2.6)これよりも良いエラーメッセージを表示できると感じています
テストが公開されていることを確認してください