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

maven surefire插件在直接调用时可以运行多个测试执行吗?(Sonar+Jenkins未运行所有单元测试)

宗政楚
2023-03-14

我有一个maven项目使用surefire插件进行单元测试。当前,测试被拆分为两个执行default-test和unittest,两者都绑定到测试目标,如下所示:

<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <executions>
      <!-- Test one set of files -->
      <execution>
        <id>default-test</id>
        <goals>
          <goal>test</goal>
        </goals>
        <configuration>
          <includes> ... </includes>
        </configuration>
      </execution>
      <!-- Test a different set of files -->
      <execution>
        <id>unitTests</id>
        <goals>
          <goal>test</goal>
        </goals>
        <configuration>
          <includes> ... </includes>
        </configuration>
      <execution>
    </executions>
  </plugin>
</plugins>
$ mvn test
...
[INFO] maven-surefire-plugin:2.13:test (default-test)
...
[INFO] maven-surefire-plugin:2.13:test (unitTests)

我正在使用Jenkins上的Sonar插件来生成代码度量,Jenkins的设置如下:

  • 运行生成操作MVN clean Install-dskiptests
  • 作为构建后操作运行Sonar插件

这意味着Sonar插件运行单元测试,并且单元测试只运行一次。当Sonar插件运行时,我看到以下输出:

[INFO] maven-surefire-plugin:213:test (default-cli) 

当Sonar插件调用mvn surefire:test时,如何确保同时调用default-cli和unitTests执行?

我在想,也许我的Jenkins设置应该改变,这样单元测试在正常的构建操作中运行,生成代码覆盖率报告,然后Sonar插件作为构建后操作运行,并加载这些报告来执行分析。不确定这是否可能,或者需要对我的POM文件做什么更改来支持这一点(希望对POM文件做最小的更改是另一个目标)。

共有1个答案

公西英叡
2023-03-14

我在想,也许我的Jenkins设置应该改变,这样单元测试在正常的构建操作中运行,生成代码覆盖率报告,然后Sonar插件作为构建后操作运行,并加载这些报告来执行分析

这似乎是个好主意。您可以使用maven配置文件来完成此操作。您可以在不同的配置文件中配置surefire插件,并在默认情况下使您希望工具使用的插件处于活动状态。

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

  • 问题内容: 如果是跑它运行在您的文件结尾通过运行启动格式的功能和使用(* T testing.T)模块。我想知道文件中的每个功能是同时运行还是确定地分别运行每个功能?是否为每个人创建一个执行例程?如果确实为每个例程创建了一个go例程,是否可以某种方式监视go例程?是否有可能做类似的事情并为每个实例获取一个实例并对其进行监控,诸如此类? 注意:这个问题假设您使用go(测试)随附的测试框架。 问题答案

  • 问题内容: 当我使用以下命令在Maven中运行单个测试时: 我得到以下结果: 它在几分钟前工作了,但是现在由于某种原因停止了工作。在运行测试之前,我尝试运行几次,但没有帮助。 测试看起来像这样: }} 更新: 这是由于将此依赖项添加到POM: 当我删除它时,一切正常。即使我添加以下两个依赖关系而不是上一个依赖关系,一切也都可以正常工作: 真奇怪 问题答案: 您可能正在类路径上的某个地方拾取了JUn

  • 错误:在调试/运行C#单元测试用例时未发现要运行的测试-Visual Studio 2017 15.5.1未发现测试用例。 框架Microsoft.NET框架4.6.1 添加了测试适配器,如下MSTest.TestAdapter.1.2.0 MSTest.TestFramework.1.1.0 测试资源管理器未显示测试用例。 这是在升级Visual Studio后开始发生的。一些单元测试项目测试用

  • 下面是我的pom.xml、testng.xml文件和TestRunners。 下面是我的pom.xml文件 [Utils][ERROR][ERROR]java.lang.NullPointerException在Cucumber.api.testng.AbstractTestngCucumberTests.Scenaries(AbstractTestngCucumberTests.java:31)