投稿指南
来稿应自觉遵守国家有关著作权法律法规,不得侵犯他人版权或其他权利,如果出现问题作者文责自负,而且本刊将依法追究侵权行为给本刊造成的损失责任。本刊对录用稿有修改、删节权。经本刊通知进行修改的稿件或被采用的稿件,作者必须保证本刊的独立发表权。 一、投稿方式: 1、 请从 我刊官网 直接投稿 。 2、 请 从我编辑部编辑的推广链接进入我刊投审稿系统进行投稿。 二、稿件著作权: 1、 投稿人保证其向我刊所投之作品是其本人或与他人合作创作之成果,或对所投作品拥有合法的著作权,无第三人对其作品提出可成立之权利主张。 2、 投稿人保证向我刊所投之稿件,尚未在任何媒体上发表。 3、 投稿人保证其作品不含有违反宪法、法律及损害社会公共利益之内容。 4、 投稿人向我刊所投之作品不得同时向第三方投送,即不允许一稿多投。 5、 投稿人授予我刊享有作品专有使用权的方式包括但不限于:通过网络向公众传播、复制、摘编、表演、播放、展览、发行、摄制电影、电视、录像制品、录制录音制品、制作数字化制品、改编、翻译、注释、编辑,以及出版、许可其他媒体、网站及单位转载、摘编、播放、录制、翻译、注释、编辑、改编、摄制。 6、 第5条所述之网络是指通过我刊官网。 7、 投稿人委托我刊声明,未经我方许可,任何网站、媒体、组织不得转载、摘编其作品。

详解maven-surefire-plugin在自动化测试中的应

来源:自动化应用 【在线投稿】 栏目:综合新闻 时间:2020-07-29
作者:网站采编
关键词:
摘要:定义 maven-surefire-plugin是一个用于mvn生命周期的测试阶段的插件(本文假设读者已经掌握了Maven相关知识点),可以通过一些参数设置方便的在testNG或junit下对测试阶段进行自定义。在实际工

定义

maven-surefire-plugin是一个用于mvn生命周期的测试阶段的插件(本文假设读者已经掌握了Maven相关知识点),可以通过一些参数设置方便的在testNG或junit下对测试阶段进行自定义。在实际工作中我们可以利用该插件指定运行的测试用例,并通过多线程的方式来运行用例,更为方便的是它还可以控制重新运行失败的测试用例的次数,这为持续集成过程中的代码测试工作带来了极大方便!

在pom.xml配置方式

这里以配置junit为例,最简单的配置方式就是只声明插件。

? ?

? ? maven-surefire-plugin

? ? 3.0.0-M4

此时maven-surefire-plugin会按照如下逻辑去寻找JUnit的版本并执行测试用例。

if the JUnit version in the project >= 4.7 and the parallel attributehas ANY value

??? use junit47 provider

if JUnit >= 4.0 is present

??? use junit4 provider

else

??? use

备注:surefire plugin 不支持junit3.8以下版本

插件手动配置方式如下:

???????

??????? maven-surefire-plugin

??????? 3.0.0-M4

???????

?????????

???????????

??????????? surefire-junit47

??????????? 3.0.0-M4

?????????

???????

常用的功能包括跳过测试阶段

true

忽略测试失败?

Maven在测试阶段出现失败的用例时,默认的行为是停止当前构建,构建过程也会以失败结束。有时候(如测试驱动开发模式)即使测试出现失败用例,仍然希望能继续构建目。

true

包含和排除特定的测试类

surefire默认的查找测试类的模式如下:

**/Test*.java

**/*

**/*

自定义包含和排除模式,支持ant-style表达式和 正则表达式(%regex[...],按.class文件匹配而不是.java)

%regex[.*[Demo1|Demo2].*Test.*]

??? **/

??? **/

分组执行测试

Junit中可以实现用例的分组测试,即运行测试用例时只执行某一类别(具备某一标签)的测试用例,实现方式如下:

首先定义一个接口,作为分组标签

publicinterfaceSmokeTests{

}

用例中使用SmokeTests分组标签

@Test

??? @Category(SmokeTests.class)

???publicvoidtest2()

{

???????try{

??????????? (1000);

??????? }catch(InterruptedException e) {

??????????? //TODOAuto-generated catch block

??????????? ();

??????? }

???????assertEquals(1,1);

??? }

Suite中使用分组标签

@RunWith(Categories.class)

@IncludeCategory(SmokeTests.class)

@SuiteClasses({Test1.class,Test2.class,Test3.class,Test4.class,Test5.class,Test6.class})

publicclassSomokeTests {

}

Pom中配置如下:

并发执行测试

使用parallel?参数,在一个?可用参数包括:methods, classes, both(classesAndMethods), suites, suitesAndClasses,suitesAndMethods, classAndMethods, all。

重新运行失败的测试用例

当我们的一个测试用例测试的是一个远程服务,在某些情况下可能由于环境问题(比如网络)导致测试用例执行失败,但这并不是程序问题.换句话说,当一个测试用例执行N次,有一次执行成功就认为成功.这个时候我们就需要配置一个参数,运行执行失败的此时用例重新执行.

2

若有测试执行失败则跳过其他测试

很多情况下我们希望测试用例没有失败的才能打包,如果出现打包失败,需要立刻停止执行其他测试用例.为满足这个要求,我们需要增加一些配置设定.

1

应用实例

首先,在Eclipse 的Maven工程中创建Junit测试用例,代码如下:

publicclassTest1 {

??? @Before

???publicvoidsetUp()throwsException {

??? }

??? @After

???publicvoidtearDown()throwsException {

??? }

??? @Test

???publicvoidtest1()

{

???????try{

??????????? (1000);

??????? }catch(InterruptedException e) {

??????????? //TODOAuto-generated catch block

??????????? ();

??????? }

???????assertEquals(1,2);

??? }

??? @Test

???publicvoid

文章来源:《自动化应用》 网址: http://www.zdhyyzz.cn/zonghexinwen/2020/0729/462.html



上一篇:浅析电气工程及其自动化的智能化技术应用
下一篇:2020上好大学|南京工业职业技术大学——自动

自动化应用投稿 | 自动化应用编辑部| 自动化应用版面费 | 自动化应用论文发表 | 自动化应用最新目录
Copyright © 2018 《自动化应用》杂志社 版权所有
投稿电话: 投稿邮箱: