擅长:python、mysql、java
<p>我不知道nose插件,但是你可以很容易地编写你自己的decorator来完成。下面是一个简单的实现:</p>
<pre><code>import functools
import nose
def expected_failure(test):
@functools.wraps(test)
def inner(*args, **kwargs):
try:
test(*args, **kwargs)
except Exception:
raise nose.SkipTest
else:
raise AssertionError('Failure expected')
return inner
</code></pre>
<p>如果我运行这些测试:</p>
^{pr2}$
<p>我从nose得到以下输出:</p>
<pre><code>tests.test.test_not_implemented ... SKIP
tests.test.test_unexpected_success ... FAIL
======================================================================
FAIL: tests.test.test_unexpected_success
Traceback (most recent call last):
File "C:\Python32\lib\site-packages\nose-1.1.2-py3.2.egg\nose\case.py", line 198, in runTest
self.test(*self.arg)
File "G:\Projects\Programming\dt-tools\new-sanbi\tests\test.py", line 16, in inner
raise AssertionError('Failure expected')
AssertionError: Failure expected
Ran 2 tests in 0.016s
FAILED (failures=1)
</code></pre>