Maven黄瓜测试代码在一个模块中并在另一个模块中执行测试

时间:2014-07-03 14:54:10

标签: maven cucumber

我想将黄瓜测试(.feature文件)保存在一个单独的jar项目中(仅用于打包为test-jar),并将此jar声明为另一个项目中的依赖项。

A 是测试jar项目(生成 A-0.1-tests.jar
B 是将 A 声明为测试依赖项的项目

这应该有用吗?它没有为我的任何测试运行。只需忽略测试目标。

这是一个pom片段:

创建这样的jar:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
            <execution>
                <goals>
                    <goal>test-jar</goal>
                </goals>
                <configuration>
                    <classifier>tests</classifier>
                </configuration>
            </execution>
        </executions>
    </plugin>

B 调用这个jar就像这样:

    <dependency>
        <groupId>com.group</groupId>
        <artifactId>A</artifactId>
        <classifier>tests</classifier>
    </dependency>

我遗失了什么......有人吗?

1 个答案:

答案 0 :(得分:0)

您的测试不存在于主模块中,因此即使存在对测试的依赖性,maven也不会运行它们(这意味着您的主代码需要测试才能执行,这无论如何都是错误的。)

根本不需要这样做。如果您遵循maven中记录的标准代码结构,您将更容易找到所有内容 - 包括创建测试代码jar。你应该把你的主要和测试代码放在一个模块中 - 这适用于整个行业的其他人,你不需要自己发明任何新东西,如果你只是随身携带你就可以了

您可以使用mvn jar插件mvn jar:test-jar创建一个包含测试的jar,与模块中的其他类分开,而无需在单独的模块中进行测试。 Here is a document describing this