如何使用nosetests实现多处理的全局setUp()

时间:2013-03-07 22:53:46

标签: python multiprocessing nosetests

到目前为止,我只使用了一个过程的鼻子测试,一切正常。

为了确保我的setUp只执行一次,我使用的是布尔变量。

def setUp(self):
  if not self.setupOk:
    selTest.setupOk = True
    # start selenium
    # do other stuff which will be needed for all other tests to be able to run

现在我想使用选项--processes = 5

运行nosetests

如何确保setUp(self)仅由一个进程执行(而其他进程正在等待)。

我尝试过使用

def setUp(self):
  lock = multiprocessing.Lock()
  lock.acquire()
      if not self.setupOk:
        selTest.setupOk = True
        # start selenium
        # do other stuff which will be needed for all other tests to be able to run 
  lock.release()

但这似乎不起作用。

1 个答案:

答案 0 :(得分:1)

在每次测试运行之前都会调用setUp。如果您希望方法只执行一次,则可以使用setUpClass:

@classmethod
def setUpClass(cls):
    print "do stuff which needs to be run once"