因此,我有一个带有子目录的验收测试的目录。
我的大多数测试相互之间没有依赖性,期望使用一套套件。
有什么办法可以告诉鼻子何时到达该类,以便依次执行测试。然后,一旦到达下一个类,即可再次启用多处理功能?
这与它们不能同时运行的测试套件中的灯具无关。他们正在执行的API会影响同时运行的其他测试。

提前致谢。

最佳答案

我将使用鼻子attribute插件来装饰需要显式禁用多处理的测试,并运行两个鼻子命令:一个启用多处理(不包括敏感测试),一个禁用多处理(仅包括敏感测试)。您将不得不依靠CI框架来结合测试结果。就像是:

from unittest import TestCase
from nose.plugins.attrib import attr

@attr('sequential')
class MySequentialTestCase(TestCase):
    def test_in_seq_1(self):
        pass
    def test_in_seq_2(self):
        pass

class MyMultiprocessingTestCase(TestCase):
    def test_in_parallel_1(self):
        pass
    def test_in_parallel_2(self):
        pass


像这样运行:

> nosetests -a '!sequential' --processes=10
test_in_parallel_1 (ms_test.MyMultiprocessingTestCase) ... ok
test_in_parallel_2 (ms_test.MyMultiprocessingTestCase) ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.071s

OK
> nosetests -a sequential
test_in_seq_1 (ms_test.MySequentialTestCase) ... ok
test_in_seq_2 (ms_test.MySequentialTestCase) ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK

关于python - Python Nosetest多处理在类/包级别启用和禁用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35343440/

10-12 17:50