程序报错如下:
java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=test], {ExactMatcher:fDisplayName=test(com.example.demo.DemoApplicationTests)], {LeadingIdentifierMatcher:fClassName=com.example.demo.DemoApplicationTests,fLeadingIdentifier=test]] from org.junit.internal.requests.ClassRequest@4b4523f8
at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:40)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createFilteredTest(JUnit4TestLoader.java:77)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:68)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:43)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
这个错误表示JUnit没有找到测试类或测试方法。根据报错信息,程序缺少:
- 名为test的测试类
- com.example.demo.DemoApplicationTests类中的test方法
没有找到匹配的项。
有几个可能的原因:
- 没有书写任何测试类或测试方法。这是一个空项目,需要添加测试。
- 测试类或方法命名不正确。例如测试类名应该为
TestDemoApplication
而不是DemoApplicationTests
,测试方法应该为testMethodName
而不是methodNameTest
。 - 测试类或方法使用了incorrect的注解。例如应该使用
@Test
而不是@tst
。 - 测试类在错误的包下。例如
com.example.tests
而不是com.example.demo
。 - 编译错误导致测试类被排除。需要先修复编译错误。
解决办法:
- 添加JUnit测试类和方法,并使用正确的命名和注解。例如:
@SpringBootTest
public class TestDemoApplication {
@Test
public void testMethodName() {
...
}
}
- 确保测试类在正确的包下,与应用主类在同一包或子包下。
- 修复所有编译错误后重新运行测试。
- 可在IDE中运行测试来调试,查看具体的错误信息和调用堆栈。
- 查看JUnit的文档来学习正确的测试书写方式。