从 Maven 中排除 TestNG 组

2023-12-26

我有一些缓慢的测试,这些测试依赖于我不想在每次使用 Maven 构建项目时运行的数据库。我已将 exceptGroups 元素添加到我的 pom 文件中,如下所述http://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html#excludedGroups http://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html#excludedGroups但我似乎无法让它发挥作用。

我创建了一个最小的项目。这是 pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>test</groupId>
    <artifactId>exclude</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.4.2</version>
                <configuration>
                    <excludedGroups>db</excludedGroups>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>5.14</version>
        </dependency>
    </dependencies>

</project>

这是两个测试类:

public class NormalTest {

    @Test
    public void fastTest() {
        Assert.assertTrue(true);
    }
}

and

public class DatabaseTest {

    @Test(groups={"db"})
    public void slowTest() {
        Assert.assertTrue(false);
    }
}

然而这两个测试仍然运行。我不明白我做错了什么。


我最终创建了外部测试套件:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="tests">
        <test name="standard">
        <groups>
            <run>
                <exclude name="slow" />
                <exclude name="external" />
                <exclude name="db" />
            </run>
        </groups>
        <packages>
            <package name="com.test.*" />
        </packages>
    </test>
</suite>

and

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="tests">
    <test name="full">
        <packages>
            <package name="com.test.*" />
        </packages>
    </test>
</suite>

并指定在配置文件中运行哪个:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.11</version>
    <configuration>
        <suiteXmlFiles>
            <suiteXmlFile>src/test/resources/suites/standard.xml</suiteXmlFile>
        </suiteXmlFiles>
     </configuration>
</plugin>

...

<profile>
    <id>fulltest</id>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>src/test/resources/suites/full.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin>
        </plugins>
    </build>
</profile>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Maven 中排除 TestNG 组 的相关文章

随机推荐

  • Braintree - 自定义 - 在PaymentMethodReceived 上手动提交表单

    你好 很棒的互联网 我正在尝试实施 Braintree 付款 到目前为止一切都很好 我已经成功地实现了具有我自己的外观和感觉的自定义表单 一切都很好 现在 我正在添加对我提交的额外数据的验证 例如运输说明和其他好东西 为了进行验证 我读到我
  • Swing JButton:文本上方的图标

    如何在 Swing 中创建一个图标位于文本上方的 JButton 就这样做 button setVerticalTextPosition SwingConstants BOTTOM button setHorizontalTextPosit
  • 自定义 Twitter Bootstrap 网格不起作用

    我正在尝试制作一个 24 列网格 我计算了这个 网站宽度 997px 列数 24 列宽 31px 装订线宽度 11px 流体柱宽度 3 1093279839519 流体槽宽度 1 1033099297894 这应该可以工作 但是当我将其输入
  • Node.js console.log 与 console.info

    使用有什么好处console log vs console info 或者与此相关的任何其他控制台命令 console info info console error error console warn warn vs console l
  • 函数 registerForActivityResult 不存在

    我已经尝试了互联网上的所有解决方案来解决这个问题 但没有人工作 我正在使用依赖项 implementation androidx appcompat appcompat 1 3 0 beta01 implementation android
  • Nginx 反向代理配置

    我需要 nginx 来反向代理以下形式的 GET 和 POST 请求 myapp path to resource to http 127 0 0 1 9090 path to resource 我正在尝试以下操作 location mya
  • c相当于matlab的sind和cosd函数

    所以我正在将一些 matlab 代码手动转换为 c 代码 我只是想知道是否有一个 c 相当于我在 matlab 代码中看到的 sind 和 cosd 函数 我猜这会返回以度为单位的答案 而不是 c sin 和 cos 函数以弧度给出结果 我
  • Java JList remove() 方法抛出 ArrayOutOfBoundsException

    我正在使用显示正确的 JList 但是 我在从列表中删除元素时遇到问题 JList nameList new JList db getAllNames nameList setVisibleRowCount 6 nameList setFi
  • 寻找监视器与信号量的良好类比/示例

    监视器应该解决并发环境中的信号量问题 我正在寻找使用监视器与信号量的良好类比 请使用信息进行类比 4 个任务 任务S 任务 任务 任务S 1 个变量 varX 每个任务都想根据某个事件来操作varX 假设一群病人想要去看医生 信号量的实现是
  • 如何在 R 中直接显示路径视图图(而不是保存为文件)?

    这是一个示例 输出是一个 png 文件hsa04110 gse16873 png 我的问题是如何直接显示绘图而不是将其保存为文件 library pathview data gse16873 d data demo paths data p
  • 如何创建播放一次并冻结在最后一帧的 GIF 图像

    如何创建播放一次并冻结在最后一帧的 GIF 图像 我已经将循环属性设为1 所以第一个问题就解决了 但是动画结束后 gif 并没有冻结在最后一帧 而是回到第一帧 您需要将 gif 的循环计数更改为 1 这是一个在线工具 可以让您免费做到这一点
  • CActiveForm 和 ajaxSubmitButton 不起作用

    这是我的代码
  • 无法定义元组的类型:目标需要 2 个元素,但源可能更少

    我正在尝试填充一个由元组组成的数组 const countries sg my th const platforms ios android const combinationsToQuery platforms flatMap platf
  • wxWidgets运行时错误(版本不匹配)

    我在启动程序时遇到问题 致命错误 检测到程序和库构建版本之间不匹配 该库使用3 0 wchar t C ABI 1010编译器 wx容器 兼容2 8 并且您的程序使用3 0 wchar t 使用C ABI 1009的编译器 wx容器 与2
  • BackgroundWorker 从外部类报告进度?

    我有一个工作解决方案 可以将进度和文本报告给进度条以及应用程序主窗体上的标签 我现在已将我的工作方法移至一个类 以便可以跨多种形式访问它们等 在工作方法中是BW ReportProgress 将进度和文本推回到主窗体中的Background
  • Android:将图像上传到PHP服务器

    我编写了一个脚本来将从相机拍摄的图像上传到我的服务器 我明白了200OK响应 但我在服务器的 uploads 文件夹中看不到我的图像 也许我的脚本包含错误 请问你能帮帮我吗 我的例子是以下链接 这是完整的 Android 类 import
  • 编写带有 NOT EXISTS 子句的查询,但不使用 NOT EXISTS 的子查询

    我有兴趣为需要使用的应用程序编写查询NOT EXISTS子句检查行是否存在 我正在使用 Sybase 但我想知道 SQL 中是否有一个示例 您可以在其中编写一个具有NOT EXISTS没有嵌套子查询的子句NOT EXISTS 所以而不是 S
  • 如何在 Ada 中从其他字符串构建字符串?

    我想在日志文件中输出标题行 然后在数据之前输出一行 为此 我创建了一个标题字符串 然后输出相同数量的 但下面的代码总是失败并出现 CONSTRAINT ERROR 因为生成的字符串不是 1024 个字符 在 Ada 中 字符串赋值需要完全相
  • 如何从函数返回 char 数组?

    我尝试过以下方法 char 10 testfunc char 10 str return str 最好作为输出参数 void testfunc char outStr char str 10 for int i 0 i lt 10 i ou
  • 从 Maven 中排除 TestNG 组

    我有一些缓慢的测试 这些测试依赖于我不想在每次使用 Maven 构建项目时运行的数据库 我已将 exceptGroups 元素添加到我的 pom 文件中 如下所述http maven apache org plugins maven sur