1

スイート テストをコーディングしようとしています。単体テストを正しく実行するモジュールが 1 つありますが、さらにモジュールを追加して一度にテストするつもりなので、次のコードをコーディングしました。

#main.py

import unittest
from test.Services import TestOS

if __name__ == '__main__':
    suite = unittest.TestSuite()
    suite.addTests( TestOS.TestOS() )
    unittest.TextTestRunner().run(suite)

TestOS.py

import unittest
from app.Services.OS import OS

class TestOS(unittest.TestCase):
    os = OS()
    def setUp(self):
        pass
    def tearDown(self):
        pass
    def testOSName(self):
        self.assertEquals(self.os.getPlatform(), 'Windows')    
    def testOSVersion(self):
        self.assertEquals(self.os.getVersion(), '7')

if __name__ == "__main__":
    #import sys;sys.argv = ['', 'Test.testName']
    unittest.main()

実行後、次の出力が得られます。

Finding files... done.
Importing test modules ... done.

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK

テストが見つかりませんでした。私のコードの何が問題なのですか?

4

2 に答える 2

4

suite.addTest( TestOS.TestOS() )テストケースにrunTest()関数が含まれている場合にのみ機能します。それ以外の場合は、「test*」で始まるTestOSの機能を検出するための「TestLoader」が必要です。

#main.py

import unittest
from test.Services import TestOS

if __name__ == '__main__':
    suite = unittest.TestSuite()
    tests = unittest.defaultTestLoader.loadTestsFromTestCase(TestOS)
    suite.addTests(tests)
    unittest.TextTestRunner().run(suite)
于 2012-08-10T22:00:02.023 に答える
0

次のようにsetUpメソッドを変更します

def setUp(self):
    self.os = OS()
    pass
于 2012-08-11T05:04:50.627 に答える