运行 并行测试用例 python

run test cases in parallel python

我想获得一些帮助,以使用多处理模块运行并行处理多个 python 测试用例。我创建了一个 class FooTest,其中包含 10 个测试用例(testA、testB...)。 class.

外有一个测试用例test_foo

如何使用 python 多处理模块并行 运行 所有测试用例?感谢您的帮助。

import unittest
import time

def setUp():
    print "module setup"

def test_foo():
    pass

class FooTest(unittest.TestCase):

    # preparing to test
    def setUp(self):
        """ Setting up for the test """
        print "FooTest:setUp_:begin"

    # ending the test
    def tearDown(self):
        """Cleaning up after the test"""
        print "FooTest:tearDown_:begin"

    # test routine A
    def testA(self):
        """Test routine A"""
        print "FooTest:testA"
        time.sleep(2)

    # test routine B
    def testB(self):
        """Test routine B"""
        print "FooTest:testB"

    # test routine C
    def testC(self):
        """Test routine C"""
        print "FooTest:testC"

    # test routine D
    def testD(self):
        """Test routine D"""
        print "FooTest:testD"

    # test routine E
    def testE(self):
        """Test routine E"""
        print "FooTest:testE"
        time.sleep(2)

    # test routine F
    def testF(self):
        """Test routine F"""
        print "FooTest:testF"

    # test routine G
    def testG(self):
        """Test routine G"""
        print "FooTest:testG"

    # test routine H
    def testH(self):
        """Test routine H"""
        print "FooTest:testH"

    # test routine I
    def testI(self):
        """Test routine I"""
        print "FooTest:testI"

    # test routine J
    def testJ(self):
        """Test routine J"""
        print "FooTest:testJ"
        time.sleep(2)

根据 nose documentation,您也可以通过 运行ning nosetests --help:

--processes=NUM Spread test run among this many processes. Set a number equal to the number of processors or cores in your machine for best results. Pass a negative number to have the number of processes automatically set to the number of cores. Passing 0 means to disable parallel testing. Default is 0 unless NOSE_PROCESSES is set. [NOSE_PROCESSES]

因此,只需 运行 nosetests --processes=-1 到 运行 使用您机器上的所有内核并行测试。