Part One
一组应用了Junit4的测试,需要增加一个动态判断,来决定是否跑test。我知道这组测试其实已经应用了junit的Category功能,来做测试组的初期分类,在跑这一整套测试的时候,执行环节会针对不同的被测产品给出一个custom参数,测试代码跑起来后会根据这个custom的值,来选择排除某些category和包括哪些category。
现在这个策略不够用了,因为之前标记好的category,同一个分类下还是有动态选择执行的需求,于是这次用到了Junit4中rule特性。
下面代码就实现了一个JUnit4中的rule。
1 | package com.ibm.robot.web.util; |
从代码中可见,这条rule规定当ap_2g的值与ap_5g相等,同时test的方法名中包含5GHz的话,则不执行这个test。 然后把这条rule应用到具体的test中即可。
1 | public class WiFiTest{ |
Part Two
其实还是上次的问题,在上一篇中提到解决办法是应用JUnit4里的Rule来实现,今天继续研究了下,觉得还是不够好,因为实际需求是,需要在运行测试的时候去动态skip某些test,今天请教了下一位朋友,就有了如下代码:
1 | package com.junit4test; |
1 | package com.junit4test; |