使用python中的unittest从一个测试到另一个测试的变量访问

时间:2017-01-07 06:34:08

标签: python python-unittest

我写了如下代码:

#base.py

import sys
import unittest

class BaseClass(unittest.TestCase):
    def setUp():
       print"in base script"
    def tearDown():
       print"in teardown"

这是测试脚本:

#test.py

import sys 
import unittest
from base import *

class demo_script(BaseClass):
  def setUp(self):
    self.flag = False
    self.abc = None
    super(demo_script, self).setUp()

  def test_before(self):
    self.abc = 5
    ## reboot occurs here and system context is saved

  def test_after(self):
    if self.abc == 5:
         print"Pass"
    else:
         print"fail"

  def tearDown(self):
    print"clean"

测试失败,因为它无法访问变量self.abc。 如何在两个测试中访问局部变量,即test_before()和test_after()?

1 个答案:

答案 0 :(得分:0)

Nose等测试跑步者不能确保测试方法的运行顺序。因此,如果您在self.abc中设置test_before,则不确定在test_after之后运行test_before

无论如何,在setUp中定义的测试方法之间共享状态是一个坏主意 - 应该隔离测试。

所以将测试方法合并为一个。