测者的测试技术手册:Junit执行单元测试用例成功,mvn te

2019-10-21  本文已影响0人  Criss陈磊

今天遇见了一个奇怪的问题,在IDE中run unit test,全部cases都成功了,但是后来通过mvn test运行case确保错了。在寻求原因的同时也找到了对应的解决方法。

Run Unit Test和Maven test的区别

这些约束就是导致IDE下Run Unit Test是成功的,但是在Maven中失败的原因。

因此测者提醒,提交单元测试代码之前,一定要在本地mvn test一次脚本。

解决的办法

在maven插件配置:(surefire2.14以下版本)

<plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-surefire-plugin</artifactId>

        <version>2.12</version>

        <configuration>

                <forkMode>always</forkMode>

        </configuration>

</plugin>

重点加入configureation的配置部分

在maven插件配置:(surefire2.14及其以上版本)

<plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-surefire-plugin</artifactId>

        <version>2.19.1</version>

        <configuration>

                <reuseForks>false</reuseForks>

                <forkCount>1</forkCount>

        </configuration>

</plugin>

在2.14以上的版本中,forkMode配置项已经废弃了。

另一个可能有效的方法

有时候在webapp项目中进行测试的时候,需要WEB-INF文件夹放在Class Path中,配置如下:

<plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-surefire-plugin</artifactId>

        <version>2.19.1</version>

        <configuration>

                <reuseForks>false</reuseForks>

                <forkCount>1</forkCount>

                <argLine>-Xmx1024m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8 -Xverify:none</argLine>

                <additionalClasspathElements>

                        <additionalClasspathElement>${basedir}/src/main/webapp/‌WEB-INF/</additionalClasspathElement>

                </additionalClasspathElements>

        </configuration>

</plugin>

关注测者,关注测试
关注我,关注测试
FROM:https://blog.csdn.net/crisschan

上一篇下一篇

猜你喜欢

热点阅读