当前位置: 首页 > 知识库问答 >
问题:

多模块多主类单元测试失败的springboot项目

裴兴学
2023-03-14

我正在尝试为一个现有的应用程序编写单元测试用例,该应用程序有多个模块,每个模块中都有主类。有多个类具有\@SpringBootApplication。我写了一个简单的测试用例,它失败了,错误如下。我如何继续我的测试用例中的一个。

java.lang.IllegalStateException:在文件[C:\My Data\Workspace\Services2\MicroServices\Reporting-MicroService\Build\classes\Java\Main\COM\MarketShare\ReportingMainClass.class]中发现多个@SpringBootConfiguration注释类[Generic Bean:class[com.MarketShare.ReportingMainClass];Scope=;Abstract=False;LazyInit=False;AutoWiRemode=0;DependencyCheck=0;AutoWirecandidate=True;在org.springframework.boot.test.context.springbootconfigurationfinder.findfrompackage(springbootconfigurationfinder.java:59)在org.springframework.boot.test.context.springbootconfigurationfinder.findfromclass(springbootconfigurationfinder.java:52)

下面是代码片段

@RunWith(SpringRunner.class)
@WebMvcTest(CustomReportController.class)
public class CustomReportControllerTest {

}

我只想对我的控制器进行单元测试。顺便说一句,我是第一次来到Spring的世界。

共有1个答案

元望
2023-03-14

@RunWith(SpringRunner.class)将加载spring上下文。若要仅测试您可以使用的控制器,请执行以下操作

@RunWith(MockitoJUnitRunner.class)
public class CustomReportControllerTest {

}
 类似资料:
  • 我有一个基本的SpringBoot应用程序。使用Spring初始值设定项、嵌入式Tomcat、Thymeleaf模板引擎,并将包作为可执行的JAR文件。是一个带有Spring Boot的多模块项目,该项目将有3个模块。这里是父模块pom。xml 这里是模块核心 这里是模块web: 从父根目录,我使用以下方法生成所有模块: 但问题是tdk-web-0.0.2-SNAPSHOT。jar不包含tdk-c

  • 父项目为demo-mybatis子模块为mybatis-dao、demo-service。demo-mybatis pom.xml如下: 4.0.0 pom mybatis-DAO Demo-service Demo-mybatis-app org.springframework.Boot spring-boot-starter-parent 2.3.2.release com.example D

  • 当我声明一个本机Java模块时,我发现了一个奇怪的异常——新代码没有通过单元测试。基本上,我从React Native中的NativeModules导入的任何内容都缺少定义:因此单元测试失败,因为类型错误:无法读取未定义的属性“HelloWorld” 复制步骤: 但错误是 实际的Java是 这运行良好(当您运行它时),但单元测试讨厌它。问题似乎是React Native测试缺乏对

  • 我有一个带有myapp-core和myapp-web模块的myapp父pom类型maven项目。myapp-core模块作为依赖项添加到MyApp-Web。 myapp-core模块中的所有类都位于根包com.myapp.core中,而myapp-web模块中的所有类都位于根包com.myapp.web中 主要的application.java也在com.myapp.web包中。由于我的核心模块根

  • 我有一个maven多模块项目。 所有测试都在称为tests/的单个模块中,所有代码都在单独的模块中。 有没有办法让我得到代码覆盖率?

  • 我有一个多模块maven项目,包含三个模块、和 Core具有以下依赖项定义 我已经为所有三个模块添加了Java9定义,的如下所示: 但是,我不知道如何让的测试类能够在测试执行期间看到类。当尝试测试运行时,找不到类。 如果向的添加需要My.Project.TestUtils;的: 然后在编译时,我得到一个错误,即找不到模块(大概是因为它只是作为测试依赖项引入的)。 在Java9模块化的世界中,如何处