1

我有一堆具有类似结构的 Java Dropwizard 微服务。我的目标是编写一组 ArchUnit 测试用例,这些测试用例需要在每个服务中运行,如果这些测试用例失败,构建应该会失败。

由于检查将是相似的,我是否可以在一个公共库中提取所有测试用例并将其作为依赖项添加到每个服务中?如何从库中添加要在服务构建中运行的测试用例?

4

1 回答 1

0

如果你使用 JUnit、Maven 和 Maven Surefire 插件,任务很简单:

  • 将所有 ArchUnit 测试打包为 Maven 工件,例如使用 groupIdorg.myproject和 artifactId myproject-archunit-tests
  • 将依赖信息添加到具有测试范围的其他工件的 pom 中:

    <dependency>
        <groupId>org.myproject</groupId>
        <artifactId>myproject-archunit-tests</artifactId>
        <version>0.0.1</version>
        <scope>test</scope>
    </dependency>
    
  • 在您的其他工件的 pom 中配置 Maven Surefire 插件,以便在测试运行中包含测试:
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.22.2</version>
        <configuration>
            <dependenciesToScan>
                <dependency>org.myproject:myproject-archunit-tests</dependency>
            </dependenciesToScan>
        </configuration>
    </plugin>
    
    另请参阅https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#dependenciesToScan
于 2020-04-24T17:37:36.517 回答