首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Maven运行Spek测试?

如何使用Maven运行Spek测试?
EN

Stack Overflow用户
提问于 2016-07-26 22:37:57
回答 1查看 1.7K关注 0票数 0

我正在尝试用Maven运行Spek测试。我已经这样设置了maven:

代码语言:javascript
复制
    <build>
        <sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
        <testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>

        <plugins>
            <plugin>
                <artifactId>kotlin-maven-plugin</artifactId>
                <groupId>org.jetbrains.kotlin</groupId>
                <version>${kotlin.version}</version>

                <configuration/>
                <executions>
                    <execution>
                        <id>compile</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>test-compile</id>
                        <phase>test-compile</phase>
                        <goals>
                            <goal>test-compile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
     </build>

另外,我在src/test/kotlin中有几个Spek测试。我可以在集成开发环境中很好地运行这些测试,但是当我运行mvn test时,它们会被surefire插件完全忽略(它报告运行0个测试)。可以使用maven运行Spek测试吗?如果可以,这将如何设置?我在spek主页上找不到任何关于它的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-27 07:08:08

我可以用一个小的样例项目来重现你的问题,那就是you can find on GitLab.com

如果你运行mvn clean test,surefire将不会找到任何测试:

代码语言:javascript
复制
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ spek-maven-sample ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.074 s
[INFO] Finished at: 2016-07-27T00:49:14+02:00
[INFO] Final Memory: 36M/363M
[INFO] ------------------------------------------------------------------------

这可以通过在Surefire插件中明确包含测试规范来规避。比方说,您的所有规范都命名为*Spec.*,然后在pom.xml中显式配置surefire

代码语言:javascript
复制
<build>
    <plugins>
        <!-- other build plugins like the kotlin-maven-plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.12.4</version>
            <configuration>
                <includes>
                    <include>**/*Spec.*</include>
                </includes>
            </configuration>
        </plugin>
    </plugins>
</build>

将导致执行测试

代码语言:javascript
复制
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ spek-maven-sample ---
[INFO] Surefire report directory: C:\Dev\IDEA\spek-test\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running NonsenseTestableSpec
Proof that 'should return true' ran
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.077 sec

Results :

Tests run: 3, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.335 s
[INFO] Finished at: 2016-07-27T01:02:12+02:00
[INFO] Final Memory: 26M/363M
[INFO] ------------------------------------------------------------------------

您可以在上面提到的存储库中找到完整的工作示例on the branch "explicit-surefire-config"

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38592886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档