我正在使用expectedFailure
,因为我想记录一个我现在无法解决的错误,但是希望将来再回到它。我对expectedFailure
的理解是,它会将测试计算为已通过,但在摘要中表示存在x个预期的失败(类似于它对跳过的tets如何工作)。
但是,当我运行我的测试套件时,我得到以下内容:
$ ./manage.py test eav.QueryTest
Creating test database for alias 'default'...
.EE
======================================================================
ERROR: test_q_object_with_exclude (eav.tests.managers.QueryTest)
----------------------------------------------------------------------
_ExpectedFailure
======================================================================
ERROR: test_q_objects_unioned (eav.tests.managers.QueryTest)
----------------------------------------------------------------------
_ExpectedFailure
----------------------------------------------------------------------
Ran 3 tests in 1.095s
FAILED (errors=2)
Destroying test database for alias 'default'...
我不确定这是否属于Django的测试运行员或者我做错了什么。
@unittest.expectedFailure
def test_q_object_with_exclude(self):
# Everyone except Bob
q_set = eav_m.Process.objects.exclude(
Q(eav__details__city__contains='Y'))
self.assertEqual(q_set.count(), 4)
答案 0 :(得分:7)
您对expectedFailure
的理解是正确的。你的问题是那些测试没有失败,他们引发了一个与失败不同的异常。
您正在寻找的装饰器是skip
。
答案 1 :(得分:0)
您应该查看SO question,因为这不是正确的行为。如果测试失败,则使用expectedFailure
装饰器should not be counted as a failure进行测试。