2016-08-28 6 views
0

私はPythonプロジェクトの自動テストを行いたいが、unittestモジュールを使用する正しい方法についてはわからない。python unittestを使用した複数のテストファイルの要約

私のテストファイルはすべて1つのフォルダに現在あり、この形式を持っている:

import unittest 
class SampleTest(unittest.TestCase): 
    def testMethod(self): 
     # Assertion here 
if __name__ == "__main__": 
    unittest.main() 

3つのテストファイルがある場合はその後、私は

find ./tests -name "*_test.py" -exec python {} \; 

を実行し、それが

. 
---------------------------------------------------------------------- 
Ran 1 test in 0.000s 

OK 
.. 
---------------------------------------------------------------------- 
Ran 2 tests in 0.000s 

OK 
.. 
---------------------------------------------------------------------- 
Ran 2 tests in 0.000s 

OK 
を出力

各テストファイルごとに1つのサマリを出力しました。ですから、問題は1つのテストサマリー、例えばRan 5 tests in 0.001sを印刷するために何ができるのですか?事前に

おかげ

と私はあなたは、Pythonを複数回呼び出すされ、各プロセスは、それらの残りの部分についての知識を持っていない他のモジュールに

答えて

1

をインストールする必要はありません。 Pythonを一度実行し、unittest発見メカニズムを使用する必要があります。

シェルで実行:あなたは発見のparamsを微調整したい場合があり、プロジェクトの構造と命名規則が何であるかに応じて、

python -m unittest discover 

、例えばヘルプで説明したように、--patternオプションを変更:

Usage: python -m unittest discover [options] 

Options: 
    -h, --help   show this help message and exit 
    -v, --verbose   Verbose output 
    -f, --failfast  Stop on first fail or error 
    -c, --catch   Catch Ctrl-C and display results so far 
    -b, --buffer   Buffer stdout and stderr during tests 
    -s START, --start-directory=START 
         Directory to start discovery ('.' default) 
    -p PATTERN, --pattern=PATTERN 
         Pattern to match tests ('test*.py' default) 
    -t TOP, --top-level-directory=TOP 
         Top level directory of project (defaults to start 
         directory) 

あなたは、私が他のモジュールをインストールしたくないを言っている間、私はまだ別のテストランナーを使用してお勧めします。そこにはいくつか例を挙げるとpytestまたはnoseという数はほとんどありません。