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

从java库执行ArchUnit测试

郎雪风
2023-03-14

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

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

共有1个答案

燕俊明
2023-03-14

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

>

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

    <dependency>
        <groupId>org.myproject</groupId>
        <artifactId>myproject-archunit-tests</artifactId>
        <version>0.0.1</version>
        <scope>test</scope>
    </dependency>
    
    <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>
    

  •  类似资料:
    • 在我的根项目中,我有两个子项目具有这种包结构。 在项目1中,我有一个用大规定义的类,就像这样 问题是,如果我运行该测试,它也会分析项目2中的所有内容。我如何排除包com.app.api?

    • 我有一些Spring测试,这些测试可以加速应用程序上下文并测试一些服务。我能够使用Maven并通过IDE运行这些测试。现在我需要在另一台无法访问Maven的机器上运行这些测试。我的想法是创建一个测试jar并通过命令行运行它们。 所以我创建了一个自定义Runner,它调用我需要的测试类,这些测试将启动Spring Application上下文并测试一些服务。 以下是示例代码: 我的自定义跑步者: 上

    • 22.13.1.执行测试 测试从main构建过程中分离出来的,运行在一个单独的JVM中执行.Test任务允许控制这些如何发生. 有许多属性用于控制测试过程如何启动.这包括使用诸如系统属性,JVM参数和Java可执行文件。 可以指定是否要并行执行测试.Gradle通过同时运行多个测试进程提供并行执行测试.每个测试进程在同一时间只能执行一个测试,为了充分利用这一特性,一般不需要为tests任务做什么特

    • 我有一个项目与cucumber和maven也我使用JUnit。 我能够从Eclipse成功地运行和构建我的项目。 现在,我想在另一个没有安装eclipse或cucumber的系统中从命令行运行测试。我有一个想法,我们可以从JAR创建一个JAR,我们可以通过java cli命令运行测试。 我已经在类路径中添加了JUNIT Jar。 我以两种方式生成jar, 1)使用->project->export

    • 问题内容: 我有一个bash脚本文件,正在shell中使用source命令调用它,并且正在设置许多环境变量。然后,我可以使用环境变量正在设置的所有工具。 现在,我想使用以下方法在Java中执行相同的操作: 我知道源是内部命令,不能从Java调用它。 还有其他方法可以通过java在该文件中设置环境变量,以便以后可以在我的代码中使用它们来调用其他命令吗? 先感谢您! 问题答案: 尝试执行类似的操作,在

    • 问题内容: 我正在尝试从用户读取一个文件,其中每一行都是一个命令,然后运行它(可以假定命令是合法的),但是当我给出类似的命令时,出现运行时异常错误: 线程“主”中的异常java.io.IOException:无法运行程序“ echo”:CreateProcess错误= 2,系统找不到指定的文件 我正在尝试运行以下命令: 在哪里。但这确实适用于类似的命令,所以看来我得到的运行时就像“运行”窗口而不是