我运行JUnit5测试,但收到一个initializationErrorNo runnable methods)。但是,我在至少一种方法(@Test)上具有failingTest批注。为什么未将failingTest标识为可运行方法(并执行了相应的测试用例)?

文件StandardTests.java ...

// See https://junit.org/junit5/docs/current/user-guide/#writing-tests-classes-and-methods
import static org.junit.jupiter.api.Assertions.fail ;
import org.junit.jupiter.api.Test ;
public class StandardTests
  {
  @Test
  public void failingTest()
    { fail ( "a failing test" ) ; }
  } // end StandardTests


并在文件TestRunner.java中...

import org.junit.runner.JUnitCore ;
import org.junit.runner.Result ;
import org.junit.runner.notification.Failure ;
public class TestRunner
  {
  public static void main ( String [] args )
    {
    Result result = JUnitCore.runClasses ( StandardTests.class ) ;
    for ( Failure failure : result.getFailures() )
      System.out.println ( "failure: " + failure.toString() ) ;
    System.out.println ( "successful: " + result.wasSuccessful() ) ;
    } // end main
  } // end TestRunner


我希望类failingTest的方法StandardTests将被标识为JUnit5测试用例并执行(也就是说,该failingTest将被标识为runnable method并作为JUnit5测试用例执行)。但是,运行TestRunner时的输出为:

C:\JUnit\Minimal>C:\Progra~1\Java\JDK-12~1.1\bin\java -cp ".;junit-platform-console-standalone-1.4.2.jar" TestRunner
failure: initializationError(StandardTests): No runnable methods
successful: false


我如何才能将此JUnit5测试用例(failingTest)标识为测试用例并执行?

最佳答案

似乎您有JUnit4 / 5混合:注释来自JUnit5(org.junit.jupiter.api.Test),但是运行者是JUnit4(org.junit.runner.JUnitCore)。最后一个应该是jupiter

另请参阅此答案以获取更多详细信息:https://stackoverflow.com/a/52373592/907576

关于java - JUnit5如何识别和执行可运行的方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56798683/

10-13 06:04