有条件地忽略JUnit 4中的测试好吧,那么@Ignore注释有助于标记不应该运行测试用例。但是,有时我想忽略基于运行时信息的测试。例如,如果我有一个并发测试,需要在具有一定数量核心的机器上运行。如果这个测试是在单处理器机器上运行的,我不认为只通过测试是不正确的(因为它还没有运行),并且肯定不应该失败测试并破坏构建。因此,我希望能够在运行时忽略测试,因为这似乎是正确的结果(因为测试框架将允许构建通过,但记录测试没有运行)。我确信注释不会给我这种灵活性,并怀疑我需要手动为所讨论的类创建测试套件。但是,文档中没有提到任何关于这一点的内容,而是查看了API还不清楚如何以编程方式(即如何以编程方式创建Test或与由@Ignore注释?)如果有人在过去做过类似的事情,或者对其他事情有一个很好的想法,我会很高兴听到的。
3 回答
qq_笑_17
TA贡献1818条经验 获得超7个赞
org.junit.Assume
.
@Before public void beforeMethod() { org.junit.Assume.assumeTrue(someCondition()); // rest of setup. }
@Before
@After
@Before
@BeforeClass
假设失败导致测试被忽略。
编辑:@RunIf
@Testpublic void calculateTotalSalary() { assumeThat(Database.connect(), is(notNull())); //test code below.}
Database.connect()
跃然一笑
TA贡献1826条经验 获得超6个赞
public class CustomRunner extends BlockJUnit4ClassRunner { public CTRunner(Class<?> klass) throws initializationError { super(klass); } @Override protected boolean isIgnored(FrameworkMethod child) { if(shouldIgnore()) { return true; } return super.isIgnored(child); } private boolean shouldIgnore(class) { /* some custom criteria */ }}
添加回答
举报
0/150
提交
取消