首页 > 解决方案 > 一些 ScalaTest 套件没有被执行

问题描述

给定ScalaTest签名后的类:

class GEMTests extends FunSuite with Matchers with BeforeAndAfterAll {

在其中我们有一些启用的测试,如下所示:

test("GEMFullPostal") {
   // logic, logic, ..
}

为什么某个测试套件被执行?其他测试套件正在正确运行。

当我通过 Intellij 运行测试套件时,它确实运行了给定的测试 - 由于不正确的 sql 语句而立即失败。但两者

  mvn test

并且 Jenkins CI/CD 构建允许整个应用程序通过 scalatest 。我可以在输出中看到没有提到那个特定的类。

所以 .. intellij 将该类识别为 ScalaTest 但它被maven命令行(包括 jenkins)跳过。这个测试套件可能有什么“特别”之处?请注意,它与自动运行的其他测试套件位于同一目录中。

标签: scalascalatest

解决方案


发现问题:里面pom.xml有一个scalatest插件的过滤机制

        <plugin>
            <groupId>org.scalatest</groupId>
            <executions>
                <execution>
                    <id>test</id>
                    <goals>
                        <goal>test</goal>
                    </goals>
                    <configuration>
                        <suffixes>(?&lt;!Integration)(Test|Spec)</suffixes>
                    </configuration>
                </execution>

所以解决方法是将Tests扩展添加到该过滤器:

<suffixes>(?&lt;!Integration)(Test|Tests|Spec)</suffixes>

推荐阅读