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

Spring开机测试:如何只使用某些豆类?

亢奇
2023-03-14

我有一堆bean的Spring boot应用程序。他们的数量一天比一天增加。所以我总是需要模拟新的bean,否则测试就会失败。所以,问题很简单:如何强制Spring Boot测试只使用应用程序上下文中的几个特定bean而不是全部?

共有1个答案

梁巴英
2023-03-14

所以,我想出了:您需要在测试包中创建类,并指向测试类以从那里运行spring,并且您必须定义需要扫描组件的包。为此,请使用前缀ScanBasePackages或批注@ComponentScan(“PackageForScan”)

@SpringBootApplication(scanBasePackages = {"com.domain.folder1.package1","com.domain.folder1.package2"})
    public static class CustomApplicationRunner {
        public static void main(String[] args) {
            SpringApplication.run(CustomApplicationRunner.class, args);
        }
    }

在测试类中,您必须将该类作为运行应用程序的主要类。

@SpringBootTest(classes = MyTestClass.CustomApplicationRunner.class)
@RunWith(SpringRunner.class)
public class MyTestClass {//tests}

这就是您如何包括或排除(使用注释@ComponentScan)任何包以添加到应用程序上下文的方法。

 类似资料:
  • 我有一个Spring应用程序,具有不同的配置文件,例如“开发”和“生产”。我用ArchUnit测试架构。我有像这样的测试 我的包中的类有不同的配置文件。我怎样才能只包含带有Spring概要文件“Production”的类?

  • 我正在寻找一种方法,使一个不和谐的机器人反应或答复,只有某些用户。它可以通过角色或ID选择用户,但我似乎无法让它工作。这就是我尝试过的: 如果有帮助的话,我正在用Discord JS编写代码。这是整个索引。js文件: 文件运行正常,机器人联机,然后打印“就绪!”然而,对于控制台来说,代码的其余部分似乎不起作用。

  • 我正在使用TestNG进行单元测试。我使用@BeforeMethod保存记录,然后执行更新、搜索、删除测试。 我的测试类如下所示:

  • 我正在使用TestNG数据提供程序读取数据池。xls文件,在名为ReadData的类中包含1017个测试用例和214列。 然后,我将214个String参数传递到名为Enterprise Data的单独类中的@Test注释中。 我在@Test中创建了一个for循环,只执行ceratin迭代的操作(比如1-10),它总共只输入10个测试用例。我的问题是,在运行结束时,它仍然显示“Total test

  • 我想要“常规”测试步骤来破坏SoapUI测试用例,同时应该允许测试步骤的一个不同子集失败。 我有一个SoapUI测试用例,它执行一个相当复杂的功能测试,其中一些可选的细节由额外的JDBC测试步骤检查。由于这些细节是“可选的”,所以即使一个或多个JDBC测试失败,测试用例也不应该失败(即它应该变成绿色)。 如果要求允许测试用例中的所有测试步骤失败,我可以简单地切换测试用例行为: 打开TestCase

  • 问题内容: 我有一个包含多个模块的项目。当所有测试通过时,Maven测试将全部运行。 当第一个模块中的测试失败时,maven将不会继续进行下一个项目。我在Surefire设置中将testFailureIgnore设置为true,但这无济于事。 我如何使Maven运行所有测试? 问题答案: 我刚刚找到了“ -fae”参数,该参数使Maven运行所有测试并且不会因失败而停止。