Groovy 来源的 Maven Surefire 插件 "include" 选项

Maven Surefire Plugin "include" option for Groovy sources

我有 Groovy 项目,我想通过 Surefire 控制要执行的测试 (sample repo)。

假设我有测试ExampleTest我可以配置Surefire如下:

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.19</version>
    <configuration>
        <includes>
            <include>**/ExampleTest.*</include>
        </includes>
    </configuration>
</plugin>

我也可以使用 <include>ExampleTest.*</include><include>ExampleTest</include> 并且有效。

很遗憾,我无法将其配置为 <include>ExampleTest.groovy</include>,但 适用于 <include>ExampleTest.java</include>

为什么会这样?这是一个错误吗?

是的,我们可以说这是一个错误。您不能在包含列表中使用 .groovy。但如果您使用 .*.java.class.

,它将起作用

我建议在 <include> 模式中使用正则表达式支持 here

例如,要包含 ExampleTest.groovy 文件:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19</version>
            <configuration>
                <includes>
                    <include>%regex[ExampleTest\.groovy]</include>
                </includes>
            </configuration>
        </plugin>
    </plugins>
</build>