2017-08-04 9 views
0

Gradleから1つのテストクラスを実行しようとしました。私はこれらのコマンドを使用しました:Gradleを使用したJUnit5テストの実行

gradle -Dtest.single=Junit5Test test 
gradle test --tests ru.tests.runner.Junit5Test 

しかし、それはプロジェクトのすべてのテストを実行します。私は1つだけのテストクラスを実行する必要があります。ここにクラスがあります:

public class Junit5Test { 

     public static void main(String[] args) { 
     LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request() 
      .selectors(
       selectPackage("ru.tests.api") 
      ) 
      .build(); 

     Launcher launcher = LauncherFactory.create(); 
     launcher.execute(request, new TestExecutionListener()); 
     } 
    } 

これは、右クリックで実行されます。私はのために

  • IntellijIDEA 2017年1月5日、
  • Gradleでは、
  • junitPlatformVersion = '1.0.0-M6'、
  • junitJupiterVersion = '5.0.0-M6'
+0

gradle -Dtest.single=Junit5Test test 

を交換することによってそれを解決しました。したがって、そのクラスを実行する場合、複数のテストが実行されることは意味があります。 – Nicolai

答えて

0

を使用しますあなたのJunit5Testクラスはではなく、 "テストクラス"です。

スタンドアロンアプリケーション(つまり、main()メソッドを持つJavaクラス)です。

したがって、Gradleを使って "テスト"として実行しようとしてもうまくいかないでしょう。

JUnit Jupiterテスト(またはJUnitプラットフォームで実行されるその他のテスト)をGradleで実行する場合は、JUnit Platform Gradle Plugin(JUnit 5ユーザーガイドの該当するセクションへのリンク)を使用する必要があります。

+0

私はGradle 4.4とJunit5/Jupiterを使った簡単なテストクラスで同じ問題に直面しています。--testsオプションは無視され、代わりにすべてのテストが実行されます。テストタスクは実際には:junitPlatformTestに置き換えられます。後者は--testオプションを持たないので、何の効果もないのでしょうか? – badbishop

+0

はい、正しいです: 'junitPlatformTest'は組み込みの' test'タスクとはまったく別のタスクです。 –

+0

'junitPlatformTest'タスクを介して実行されるテストを設定する場合は、JUnit 5ユーザガイドに完全に記載されている' junitPlatform'設定で​​セレクタやフィルタを設定する必要があります。 –

0

私はあなたの1つのテストはすべてのテストを実行 `Launcher`を構築するように見えます

gradle -DjunitPlatformTest.single=Junit5Test test 
関連する問題