Java Can';t为简单控制器运行Spring启动测试
我有一个简单的测试:Java Can';t为简单控制器运行Spring启动测试,java,spring,spring-boot,Java,Spring,Spring Boot,我有一个简单的测试: package com.example.app; import com.example.app.HomeController; import static org.assertj.core.api.Assertions.assertThat; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.sprin
package com.example.app;
import com.example.app.HomeController;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class HomeControllerTest {
@Autowired
private HomeController controller;
}
和一个家庭控制器
测试位于test/java/com/example/app中
控制器位于java/com/example/app中
为什么进口问题不能解决
如果没有它,它也无法工作,这与教程的建议是一致的
没有输入,我仍然得到
编辑:
我从Visual Studio代码创建了这个包,但它只是一个简单的maven init模板。您的测试类不包含任何测试方法。这就是为什么当你试图执行它时,什么都不会发生 你能做什么?至少实施一种测试方法,并用
@test
对其进行注释
更新:
原因是查错了名字。没有神奇的理由。每个人都会犯错误。这是我的例子,我试着跑步,效果很好-
@SpringBootTest
@ActiveProfiles("test")
@RunWith(SpringRunner.class)
public class MainApplicationTest {
@Autowired
HomeController homeController;
@Autowired
OtherController otherController;
@Test
public void testContextLoading() throws Exception{
assertThat(homeController).isNotNull();
assertThat(otherController).isNotNull();
}
}
1) 您的测试类不包含任何测试方法。显示测试类的整个代码。2) 解释你所说的“不能跑”是什么意思。如何从Maven、Gradle、命令行和IDE启动它?当您尝试运行它时,您看到了什么?如果测试在同一个包中,则无需导入控制器。请参阅更新的描述它不会运行,因为我无法引用控制器及其测试。这意味着它没有上下文运行
mvn测试时,我会遇到“构建失败”
@vuvgaG-dukgu3-wysnox:显示您的项目结构。完成,感谢您的支持help@vuvgaG-dukgu3 wysnox:1)屏幕截图上既没有HomeController也没有HomeControllerTest。2) 显示HomeController的源代码。3) 运行mvn clean package
并显示结果。编译失败***找不到符号[ERROR]符号:class HomeController[ERROR]位置:class com.example.app.HomeControllerTest如果包相同,则不需要导入语句。尝试mvn清理编译。如果您正在使用某些IDE,请创建干净的构建。还要检查HomeController是否在com.example.app包中。而且它没有任何错误。
@SpringBootTest
@ActiveProfiles("test")
@RunWith(SpringRunner.class)
public class MainApplicationTest {
@Autowired
HomeController homeController;
@Autowired
OtherController otherController;
@Test
public void testContextLoading() throws Exception{
assertThat(homeController).isNotNull();
assertThat(otherController).isNotNull();
}
}