2017-02-14 11 views
2

テストスイートの実行に問題があります。 私はpytestを使って什器やテストの注文をしています。すべてのテストクラスはパラメータ(unittest.TestCase)を持っています。Python pytest unittest.TextTestRunnerは特定のスイートを実行しません

私が実行するファイルは、テストがあるディレクトリ(フォルダ/パッケージ)と同じです。私はコマンドでpytest tests/test_suit.pyのTestSuiteを実行します。ここにtest_suit.pyがあります:

import unittest 
from unittest import TextTestRunner 
from unittest import TestLoader 

from tests.home_page.login_test import LoginTest 
from tests.cloud.cloud_test import CloudTest 

tc1 = unittest.TestLoader().loadTestsFromTestCase(CloudTest) 
tc2 = unittest.TestLoader().loadTestsFromTestCase(LoginTest) 

smokeTest = unittest.TestSuite([tc1]) 

unittest.TextTestRunner(verbosity=2).run(smokeTest) 

問題は、私が1つだけを入れたとしても、すべてのテストケースを実行するという問題です。それは私が引数(unittest.TestCase)を持っているすべてのクラスを収集し、正しいTestSuiteを取得しないように見えます。

smokeTest = unittest.TestSuite([tc1])またはsmokeTest = unittest.TestSuite([tc2, tc1])を実行しても問題はありませんが、それでもすべてのテストケースが実行されます。

+0

は、なぜあなたはこれを間違っ事やっているんでしょうか? py.testとnoseのようなツールを使うのは、テストを収集して実行できるようにすることです。 'TestSuite'を定義する必要はありません。 'LoginTest'だけを実行したい場合は、コマンドラインで指定するか、提供されたデコレータを使って他のテストをスキップすることができます。 – Bakuriu

+0

まあ、私は、煙、機能、回帰などのようなテストスイートの束を持っているすべてのテストケースの独自のセットがあります。 – olia

+0

だから?スモークテストを実行する場合は、 'pytest tests/test_smoke.py'を使用するか、ディレクトリの場合は' pytest tests/smoke_tests'を使用します。ファイル/ディレクトリでテストを正しくグループ化する場合は、実行するテストを収集するために何もする必要はありません。ディレクトリ/ファイルを指定するだけです。 – Bakuriu

答えて

0

ここは私の無回答です。 pytest documentationをチェックし、あなたは完全にpytestスタイルのためのテストをを変換するまで、これはあなたのテストコード を実行しているの暫定方法として意図されていることを注意

、(強調追加)などの段落を見つけました。フィクスチャの を完全に利用するには、変換する必要があるパラメータ化とフック( unittest2pytestのようなツールが役に立ちます)。また、すべてのサードパーティプラグインがunittest.TestCaseスタイルのテストで最もよく動作することが期待される であるとは限りません。

unittestスタイルのテストランナーでpytestを呼び出すことができるはずですか?

pytest's own test for unittest compatibilityとそのunittest.py moduleを見ると、test_suite.pyが依存するunittestスタイルのTestSuitesのサポートや検証はなく、この質問の基礎となっています。私は彼らがサポートしていることをサポートしていることを確認します。unittest.TestCase。

pytestは

so zyoung$ pytest tests/test_suit.py 
============================= test session starts ============================== 
platform darwin -- Python 2.7.13, pytest-3.0.6, py-1.4.32, pluggy-0.4.0 
rootdir: /Users/zyoung/so, inifile: 
collected 2 items 

tests/test_suit.py .. 

=========================== 2 passed in 0.02 seconds =========================== 

パイソン/ unittestのは正しい

so zyoung$ python tests/test_suit.py 
test (cloud.cloud_test.CloudTest) ... ok 

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

OK 
関連する問題