2011-05-09 14 views
1
import .... 

class Test1: 

    @classmethod 
    def setUpClass(self): 
    ... 

    def test_something(self): 
    ... 

    @classmethod 
    def tearDownClass(self): 
    ... 

class Test2: 

    @classmethod 
    def setUpClass(self): 
    ... 

    def test_anotherthing(self): 
    ... 

    @classmethod 
    def tearDownClass(self): 
    ... 

if __name__ == '__main__': 
    unittest2.main() 
+2

はい、なぜあなたはそれを試してみてください:)とあなたのクラスは 'unittestの継承べき方法ではなかったです。テストケース – mouad

答えて

1

はいです。なぜあなたはそれを渦巻かせませんか?

ここに私のテストクラスがunittest.TestCaseから継承し、テストが故意に失敗する例、です:

#!/usr/bin/env python 

import unittest 

class TestAddition(unittest.TestCase): 

    def test_addition(self): 
     self.assertEquals(3, 1 + 1) 

class TestSubtraction(unittest.TestCase): 

    def test_subtraction(self): 
     self.assertEquals(3, 1 - 1) 

if __name__ == '__main__': 
    unittest.main() 

% ./t.py 
FF 
====================================================================== 
FAIL: test_addition (__main__.TestAddition) 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "./t.py", line 8, in test_addition 
    self.assertEquals(3, 1 + 1) 
AssertionError: 3 != 2 

====================================================================== 
FAIL: test_subtraction (__main__.TestSubtraction) 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "./t.py", line 13, in test_subtraction 
    self.assertEquals(3, 1 - 1) 
AssertionError: 3 != 0 

---------------------------------------------------------------------- 
Ran 2 tests in 0.002s 

FAILED (failures=2) 
3

もちろん、unittest.TestCaseを継承していることを確認してください。その後、unittest.mainが検出されて実行されます。

unittest.TestLoader().loadTestsFromTestCaseまたはunittest.TestLoader().loadTestsFromNamesメソッドを使用して、ファイル内のいくつかのテストを実行することもできます。