JUnit5如何识别和执行可运行的方法?
How does JUnit5 identify and execute runnable methods?
我 运行 JUnit5 测试但收到 initializationError
(No runnable methods
)。但是,我至少在一种方法 (failingTest
) 上有 @Test
注释。为什么 failingTest
没有被识别为 运行nable 方法(并执行相应的测试用例)?
文件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
我希望 class StandardTests
的方法 failingTest
将被识别为 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
.
另请参阅此答案了解更多详情:
我 运行 JUnit5 测试但收到 initializationError
(No runnable methods
)。但是,我至少在一种方法 (failingTest
) 上有 @Test
注释。为什么 failingTest
没有被识别为 运行nable 方法(并执行相应的测试用例)?
文件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
我希望 class StandardTests
的方法 failingTest
将被识别为 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
.
另请参阅此答案了解更多详情: