Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 防止从子级启动继承的测试方法_Python 2.7_Unit Testing_Selenium_Nosetests - Fatal编程技术网

Python 2.7 防止从子级启动继承的测试方法

Python 2.7 防止从子级启动继承的测试方法,python-2.7,unit-testing,selenium,nosetests,Python 2.7,Unit Testing,Selenium,Nosetests,我有两个功能测试类 class VehicleTest(unittest.TestCase): def setUp(self): self.browser = webdriver.Firefox() def test_math(self): self.assertEqual(1+1, 2) class VehicleTestCase2(VehicleTest): def setUp(self):

我有两个功能测试类

class VehicleTest(unittest.TestCase):
      def setUp(self):
          self.browser = webdriver.Firefox()

      def test_math(self):
          self.assertEqual(1+1, 2)


class VehicleTestCase2(VehicleTest):
      def setUp(self):
          super(VehicleTestCase2, self).setUp()
          self.do_some_additional_stuff()

      def test_another_math(self):
          self.assertEqual(2+2, 4)
作为测试运行者,我使用
nosetests
。当我进入测试目录中的控制台,键入
nosetests
并点击回车键时,我看到3个测试按照这个顺序启动

VehicleTest.test_math, VehicleTestCase2.test_another_math, VehicleTest.test_math
问题: 如何防止从子类启动父类测试?所以我只启动了这些测试

VehicleTest.test_math, VehicleTestCase2.test_another_math 

我想从启动中排除继承自
VehicleTestCase2
的测试。

拆分
VehicleTest
,这样您就有了一个只包含所有类所共有的内容的基类,并创建了一个包含
test\u math
的类。比如:

class VehicleTest(unittest.TestCase):
      def setUp(self):
          self.browser = webdriver.Firefox()


class VehicleTestCase1(VehicleTest):
      def test_math(self):
          self.assertEqual(1+1, 2)


class VehicleTestCase2(VehicleTest):
      def setUp(self):
          super(VehicleTestCase2, self).setUp()
          self.do_some_additional_stuff()

      def test_another_math(self):
          self.assertEqual(2+2, 4)
上面代码中的
VehicleTest
是您的基类,
VehicleTestCase1
是新类

我不建议尝试找到一个技巧,让基类包含一系列测试,这些测试后来在一些派生类中被抑制。这只会模糊代码的逻辑