spring - Spring Boot @RunWith(SpringRunner.class) 导致 InitializationError
问题描述
我有这个问题几天了,在这个论坛上检查了类似的问题,并以各种方式谷歌搜索,但找不到答案。
这是一个 Spring Boot 入门项目:我有一个类 Graphs,它在“src/main/java”下的包中由 @Component 注释:
@Component
public class Graphs {
}
然后,我在“src/test/java”下创建了测试类。其中之一(用于测试图表):
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import com.example.demo.Graphs;
@RunWith(SpringRunner.class)
@SpringBootTest
public class GraphsTest {
@Test
public void testRun () {
Graphs graph = new Graphs();
}
}
然后我在 Eclipse 中运行 testRun(右键单击“testRun”--> Run As --> Junit Test)。我得到的结果是:
initializationError [Runner: Junit 4] (0.0001s)
Eclipse 中的故障跟踪显示如下:
java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=testRun], {ExactMatcher:fDisplayName=testRun(com.example.demoTest.GraphsTest)], {LeadingIdentifierMatcher:fClassName=com.example.demoTest.GraphsTest,fLeadingIdentifier=testRun]] from org.junit.internal.requests.ClassRequest@1f7030a6
at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:40)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createFilteredTest(JUnit4TestLoader.java:83)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:74)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:49)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:525)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:763)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:463)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209)
我做了一些调整,没有任何运气:
- 我购买了最新的 Eclipse Oxygen,也在 Eclipse 2018-12 版中尝试过,结果相同。
- 如果我删除 @RunWith 注释并运行 testRun,它会产生预期的结果。
- 我添加了一个 Public static void main 并将其作为“Java 应用程序”运行,它产生了预期的结果。我猜想将它作为 Java 应用程序运行绕过了@RunWith(SpringRunner.class)。
我哪里做错了?
解决方案
推荐阅读
- regex - Ansible lineinfile 模块删除文件开头的空格
- java - 如何动态地将列添加到 TableView 并更新其内容
- asp.net - 在 devops 管道中发布任务失败并出现 Import Project not found 错误
- r - 基于r中的两列合并两个文件
- amazon-web-services - 自动缩放后 Elastic Beanstalk 不部署应用程序
- postgresql - PostgreSQL 存储过程性能
- android - Jetpack Compose RecyclerView Fading Edge 等效
- r - 在 RStudio 中使用 knitr 生成 .pdf 到 PDF 时出错
- android - Jetpack Compose“onSurface”颜色不起作用
- java - 如何将 SomeClass 转换为 Class