junit测试报告生成_这是东西:jUnit:动态测试生成

junit测试报告生成

当您需要在许多不同的输入值或配置上运行同一组测试时,动态测试生成很有用。 可以使用参数化测试或使用理论来实现。

当您有大量数据用作参数并想对所有组合进行测试时,这些理论非常有用。 您得到的控制较少,但不必自己编写合并和迭代的代码。 关于理论如何工作的基础知识在Java代码极客 (最初出现在Java出现日历 )上进行了解释,因此,本文主要关注参数化测试。

当您需要对输入值进行良好控制时,参数化测试会更好,例如,包含用作输入的文件的目录或有意义的参数组合列表。

参数化测试

参数化测试是一个测试用例,能够接受参数以及您希望其运行的所有参数组合的列表。 JUnit遍历参数列表,使用每个参数初始化测试用例,然后运行其所有测试方法。

然后,GUI和Maven运行程序都将每个参数化的测试运行解释为单独的测试。 如果其中一些失败,则立即清楚哪些失败了,有多少失败了。

示例用例

Less4j对于css编译器来说较少,因此其每个测试都由一个较少输入的文件和一个预期CSS文件定义。 编译器在输入文件上运行,并将其输出与预期CSS进行比较。 如果它们匹配,则测试通过。

所有.less文件都存储在目录中。 参数化的测试用例读取该目录,并为每个文件创建一个jUnit测试。 因此,我们可以通过创建新的.less和.css来添加新测试,通过“全部运行”按钮运行测试,并在所有报告中查看新测试。

如何使用它

参数化的测试用例必须具有以下内容:

  • @RunWith(Parameterized.class)类注释,
  • 接受测试用例参数的构造函数,
  • 带有@Parameters注释的静态方法以生成参数,
  • 在构造函数中提供的参数上运行的测试方法。

建设者

参数化的构造函数必须至少具有一个参数。 例如,编译器测试用例可以将较少的输入作为第一个参数,而将预期的已编译css作为第二个参数。 第三个参数name将被忽略,稍后将进行解释:

@RunWith(Parameterized.class)
public class ParametrizedTest {public ParametrizedTest(String less, String expectedCss, String name) {this.less = less;this.expectedCss = expectedCss;}}

参量

生成参数的静态方法必须返回Iterable接口的实现。 迭代器返回包含参数集的数组。 每个数组用于创建一个测试用例实例,其中的对象用作构造函数参数。

例如,以下方法返回两个数组,从而导致两个测试用例实例:

@Parameters(name="Name: {2}")
public static Iterable<Object[]> generateParameters() {List<Object[]> result = new ArrayList<Object[]>();result.add(new Object[] {"less", "css", "pass"});result.add(new Object[] {"less", "error", "fail"});return result;
}

name注释参数是可选的。 其值将在GUI或maven报告中显示为测试用例名称。 {n}是第n个数组值的占位符。 它们从0开始索引,因此第一个测试用例将被命名为Name: pass ,第二个测试用例将被命名为Name: fail

测试方法

参数化的测试用例可以具有任意数量的测试,并且必须使用@Test批注进行批注:

@Test
public void testCss() { //dummy test methodString actualCss = compile(less);assertEquals(expectedCss, actualCss);
}@Test
public void testSourceMap() { //another test methodString actualCss = compile(less);assertEquals(expectedCss, actualCss);
}private String compile(String less) { //dummy compile methodreturn "css"; 
}

输出量

如果运行上述测试类,则JUnit视图将显示以下结构:

[F] com.github.sommeri.jUnit4Examples.ParametrizedTest
[ ] |-- [Name: pass]
[ ] |---------------- testCss[Name: pass] 
[ ] |---------------- testSourceMap[Name: pass] 
[F] |-- [Name: fail]
[F] |---------------- testCss[Name: fail] 
[F] |---------------- testSourceMap[Name: fail]

完整的测试案例

@RunWith(Parameterized.class)
public class ParametrizedTest {private String less;private String expectedCss;public ParametrizedTest(String less, String expectedCss, String name) {this.less = less;this.expectedCss = expectedCss;}@Parameters(name="Name: {2}")public static Iterable<Object[]> generateParameters() {List<Object[]> result = new ArrayList<Object[]>();result.add(new Object[] {"less", "css", "pass"});result.add(new Object[] {"less", "error", "fail"});return result;}@Testpublic void testCss() {String actualCss = compile(less);assertEquals(expectedCss, actualCss);}@Testpublic void testSourceMap() {String actualCss = compile(less);assertEquals(expectedCss, actualCss);}//dummy compile methodprivate String compile(String less) {return "css"; }  
}

翻译自: https://www.javacodegeeks.com/2014/08/this-is-stuff-junit-dynamic-tests-generation.html

junit测试报告生成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

发动机冷启动和热启动的区别_「牛车实验室」AGM自动启停蓄电池解读 和普通蓄电池到底有什么区别...

[资讯-牛车网]为了节省燃油&#xff0c;越来越多的新车搭载了自动启停功能。搭载了这项功能的汽车&#xff0c;都会随之搭配一块独立的自动启停蓄电池&#xff0c;这块电池只单独为自动启停系统工作。那么同是蓄电池&#xff0c;自动启停电池和普通蓄电池有什么区别&#xff0c…

浮点数计算机的表示案例,计算机中的数据及其应用案例.docx

计算机中的数据及其运算HLJ_DJS☆笔记整理计算机中的数据包括数值性数据和非数值性数据两种。数据在计算机中通常是以二进制的形式表示的。对数值性数据进行编码即数值码&#xff0c;可以在计算机中对其进行各种数的运算。对非数值性数据进行编码&#xff0c;便于计算机进行识别…

返回内容验签失败_邮件经常失败回弹很糟心?一定要知道这几个小知识

很多人都反应每次发送邮件&#xff0c;总有一部分发生失败回弹&#xff0c;大大影响了送达率&#xff0c;非常糟心&#xff01;今天我们为大家整理了一些常见关于发送回弹状态的相关知识以及如何避免邮件回弹的注意事项。一、回弹状态的两种类型邮件发送失败时ESP(邮件供应服务…

Tomcat JDBC池–连接泄漏–捕获罪魁祸首

数据库连接泄漏是可以隐藏的东西&#xff0c;除非特别注意&#xff0c;否则将在系统高峰期最关键的阶段暴露出来。 我们将手动检查所有打开的连接是否已正确关闭。 然后&#xff0c;我们将提供各种代码质量插件来进行扫描和检查。 当连接通过复杂的程序结构传递时&#xff0c;这…

客户端怎么远程上服务器失败,远程客户端连接不上,与服务器那台,跨网络,怎么解决...

对应版本:用友U8.52对应产品线&#xff1a;供应链对应模块&#xff1a;销售管理模块问题现象:1、销售发货单参照单生成不能增行(充许超计单发货)&#xff1f;新增行单价为0如何体现。2、到货单中合格数不可填写(不用GSP质量管理)&#xff0c;参照生成的入库单不可改数量&#x…

用火狐录制脚本为空_功能测试——链接测试amp;脚本功能

链接测试对于页面链接功能&#xff0c;测试工程师需考虑其链接文字描述正确性、链接地址跳转正确性、链接触发脚本正确性、是否存在404错误等。如果是小型Web系统&#xff0c;链接较少&#xff0c;人工测试即可&#xff0c;如果被测对象包含很多链接&#xff0c;则可利用Xenu链…

Tycoon:针对多种平台上的Java JIMAGE的勒索软件

黑莓研究与情报团队和毕马威&#xff08;KPMG&#xff09;的英国网络响应服务团队报告说&#xff1a;“ 威胁焦点&#xff1a;大亨勒索软件针对教育和软件行业 。” 该报告概述了“针对Windows和Linux的多平台Java勒索软件&#xff0c;至少从2019年12月开始就在野外观察到”&am…

笔记本电脑显示打印机服务器关闭,笔记本win10系统的打印机服务怎么禁用或重启...

笔记本win10系统的打印机服务怎么禁用或重启腾讯视频/爱奇艺/优酷/外卖 充值4折起在我们的生活中&#xff0c;如果打印机出错了&#xff0c;我们就需要关闭打印机或者重启打印机&#xff0c;那么笔记本的win10系统禁用/启动打印机服务方法是什么呢&#xff1f;下面小编告诉大家…

python 发送邮件附件很慢_python下smtpsendmail发送特别慢

调用send_mail时卡在s.sendmail(me,to_list,fullText)不动了&#xff0c;很久才响应。代码如下&#xff1a;defsend_mail(to_list,sub,content,path):memail_usermain_msgemail.MIMEMultipart.MIMEMultip...调用send_mail时卡在s.sendmail(me, to_list, fullText)不动了&#x…

junit runner_了解JUnit的Runner架构

junit runner几周前&#xff0c;我开始创建一个小的JUnit Runner&#xff08; Oleaster &#xff09;&#xff0c;它允许您使用Jasmine方式在JUnit中编写单元测试。 我了解到&#xff0c;创建自定义JUnit Runners实际上非常简单。 在这篇文章中&#xff0c;我想向您展示JUnit R…

php 邮件服务器 群发,发送使用PHP群发电子邮件发送使用PHP群发电子邮件(Sending mass email usin...

我目前正在写一个音乐博客。 管理员发布一个新的文章每2-3天。 一旦管理员岗位的文章&#xff0c;群发电子邮件将被立即发送到5000左右的用户。什么是实现群发邮件功能的最佳方法是什么&#xff1f;请问下面的函数工作&#xff1f;function massmail(){$content ...;foreach (…

linq判断集合中相同元素个数_iOS开发swift语法梳理:集合Set

1.集合的三特性确定性&#xff1a;给定一个集合&#xff0c;任意给一个元素&#xff0c;该元素或者属于或者不属于该集合&#xff0c;二者必居其一。互斥性&#xff1a;一个集合中的所有元素都是不相同的。无序性&#xff1a;每个元素的地位相同&#xff0c;元素之间是无序的。…

Java 14:有用的NullPointerException消息

Java 14中引入了新的JVM选项-XX:ShowCodeDetailsInExceptionMessages &#xff0c;以提供有用的NullPointerException消息 &#xff0c;以准确显示在发生NullPointerException时为空。 例如&#xff0c;考虑以下代码&#xff1a; var name library.get( "My Book" )…

世界机器人冠军王宇航_★​身边的榜样,为你喝彩:我校学子摘冠第七届河南省VEX U机器人挑战赛...

近日&#xff0c;第七届河南省大学生机器人竞赛在河南开放大学顺利闭幕。我校2018级机自专业学生王宇航、李泽坤和应用物理学专业学生闫朝硕荣获“VEX U机器人挑战赛冠军”、“VEX U机器人挑战赛一等奖”&#xff0c;中原工学院荣获“优秀组织奖”。一份耕耘、一份收获&#xf…

python监控服务器信息,Python监控服务器实现邮件微信报警

本文中笔者暂时实现的只有cpu和内存的监控&#xff0c;python可以监控许多的主机信息&#xff0c;网络&#xff0c;硬盘&#xff0c;机器状态等&#xff0c;以下是代码的实现&#xff0c;代码可以实现windows和 linux 的监控。实验环境&#xff1a;Ubuntu16.04和windos10&#…

对象空指针_可选和对象:空指针救星!

对象空指针没有人喜欢空指针异常 &#xff01; 我们有办法摆脱它们吗&#xff1f; 也许 。 。 。 这篇文章中讨论了几种技术&#xff1a; 可选类型&#xff08;Java 8中的新增功能&#xff09; 对象类&#xff08;旧的Java 7东西&#xff01;&#xff09; Java 8中的可选类…

循环发ajax请求,在循环中发送jquery ajax请求

我在我的Web应用程序的Map中实现了“空间选择”&#xff0c;它选择Streets的数量。选择后&#xff0c;我会为使用“选择处理程序”选择的所有街道获取唯一的街道标识。在循环中发送jquery ajax请求我的下一步是发送Ajax请求到每个街道Id的服务器并获取回应。目前&#xff0c;我…

延迟关机_苹果电脑到底需不需要关机?关机和休眠你选择哪个

刚买了MacBook的朋友&#xff0c;会不会跟小编一样&#xff0c;是格外的珍惜&#xff0c;总想以一种最好的方式使用自己人生中第一个苹果电脑。苹果笔记本需要关机吗&#xff1f;不关机会卡吗&#xff1f;也成了自己关心的话题&#xff01;Mac 到底要不要关机&#xff0c;这个问…

关于高效企业测试的思考(1/6)

企业中的测试仍然不是应有的广泛使用的话题。 编写尤其是维护测试需要花费时间和精力&#xff0c;但是缩短软件测试并不是解决方案。 为了提高测试效率&#xff0c;应该追求哪些范围&#xff0c;方法和测试技术&#xff1f; 我根据许多实际项目&#xff0c;结合了我在企业测试…

电脑开机后显示服务器没有声音,我的电脑音频服务启动不了,没有声音,小扬声器那里是一个红色的小叉叉...

(我系统是W7普通家庭版32位)一、电脑没了声音&#xff0c;小喇叭上有个红叉&#xff0c;鼠标放上去显“音频服务未运行”&#xff0c;进入控制面板&#xff0c;声音里显没有设备。1&#xff0c;确保硬件好的前提下&#xff0c;还是得先检查下你的驱动有没有问题。2&#xff0c;…