テストスイートの実行に問題があります。 私は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])
を実行しても問題はありませんが、それでもすべてのテストケースが実行されます。
は、なぜあなたはこれを間違っ事やっているんでしょうか? py.testとnoseのようなツールを使うのは、テストを収集して実行できるようにすることです。 'TestSuite'を定義する必要はありません。 'LoginTest'だけを実行したい場合は、コマンドラインで指定するか、提供されたデコレータを使って他のテストをスキップすることができます。 – Bakuriu
まあ、私は、煙、機能、回帰などのようなテストスイートの束を持っているすべてのテストケースの独自のセットがあります。 – olia
だから?スモークテストを実行する場合は、 'pytest tests/test_smoke.py'を使用するか、ディレクトリの場合は' pytest tests/smoke_tests'を使用します。ファイル/ディレクトリでテストを正しくグループ化する場合は、実行するテストを収集するために何もする必要はありません。ディレクトリ/ファイルを指定するだけです。 – Bakuriu