程序报错java.lang.Exception: No tests found matching

程序报错如下:

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方法
    没有找到匹配的项。

有几个可能的原因:

  1. 没有书写任何测试类或测试方法。这是一个空项目,需要添加测试。
  2. 测试类或方法命名不正确。例如测试类名应该为TestDemoApplication而不是DemoApplicationTests,测试方法应该为testMethodName而不是methodNameTest
  3. 测试类或方法使用了incorrect的注解。例如应该使用@Test而不是@tst
  4. 测试类在错误的包下。例如com.example.tests而不是com.example.demo
  5. 编译错误导致测试类被排除。需要先修复编译错误。

解决办法:

  1. 添加JUnit测试类和方法,并使用正确的命名和注解。例如:
@SpringBootTest
public class TestDemoApplication {

    @Test
    public void testMethodName() {
        ...
    }
}
  1. 确保测试类在正确的包下,与应用主类在同一包或子包下。
  2. 修复所有编译错误后重新运行测试。
  3. 可在IDE中运行测试来调试,查看具体的错误信息和调用堆栈。
  4. 查看JUnit的文档来学习正确的测试书写方式。