有时候辛苦写了好多测试用例,但跑起来测试是否能跑通却依赖外部环境了。这种 情况非常恼人,无奈只能将测试注释掉,但是又带来一个问题,当一个测试类中 所有测试用例都被注销的时候,JUnit会报错:

Results :

Tests in error:
  initializationError(pl.hachune.test.DemoTest): No runnable methods

Tests run: 0, Failures: 0, Errors: 1, Skipped: 0

不得不又追加一个丑陋的 src_shell{testDummy} 空方法。今天实在忍受不了,查 到其实Junit自带就有比较简单地解决办法。

package pl.hachune.test;

import org.junit.Ignore;
import org.junit.Test;

import static org.junit.Assert.assertTrue;

public class DemoTest {
  @Ignore // 增加这句,顺便还可以增加一些注释,为什么需要忽略等等
  @Test
  public void testTrue {
    assertTrue(1 == 0);
  }
}

在跑就自动忽略这个用例啦,即使测试类中所有测试用例都忽略掉也能正常运行。

更加高级的用法可以考虑 src_shell{@RunIf} 等等根据条件判断的。没用过就先不 介绍了。

参考资料