我想知道使用JUnit的@Ignore是否是一个好的实践。以及人们是如何使用它的?
我想出了下面的用例:假设我正在开发一个类并为它编写一个JUnit测试,这个测试没有通过,因为我还没有完全完成这个类。用@Ignore标记它是一种好的做法吗?
我有点担心我们以后可能会错过被忽略的测试用例,或者人们开始使用它来“强迫”测试通过CI。
发布于 2009-01-05 06:28:41
发布于 2009-08-18 11:10:26
对于由于已知bug而失败的测试,我通常使用@Ignore。一旦错误被确认并记录在错误数据库中,测试失败就没有意义了,因为这个错误是已知的。
尽管如此,保留测试代码还是有意义的,因为一旦修复了bug,它就会再次有用。因此,我将其标记为忽略,并添加注释以指示相关的bug,理想情况下,还应在bug报告中注明应重新激活测试以测试修复。
发布于 2009-01-05 08:26:13
IMHO,忽略它不应该被轻率地使用...由于破碎的窗口效应。
我很少在xUnit中使用这个属性/注释。我仅有的几次使用它们是在编写TestCase#1时作为TODO,我看到了另一个我错过了但也应该包括在内的测试用例。为了不忘记它,我编写了一个带有描述性名称的小测试用例,并将其标记为Ignore。继续完成TestCase#1。但这都是内部签入。我从不签入标记为Ignore的测试。
然而,通常我只是使用一张纸-测试列表来草草记下新的测试用例-这要简单得多。这也迎合了我部分完成的情况...完成了10个测试中的5个。而不是签入5个被忽略的测试,我会保留测试列表,并签入5个通过测试。假设你将在接下来的几次签到中完成剩下的部分,然后再跳到新的地方。
我能想到的其他“特殊情况”是..
当您正在等待来自另一个团队/人员/供应商(其接口已经发布-同意)的组件时,如果没有它,测试就不能运行。在这种情况下,您可以编写测试并将其标记为Ignore("Waiting on X to deliver component Y")
https://stackoverflow.com/questions/412409
复制相似问题