10

同様の質問を見ていましたが、私の問題に対する答えが見つかりませんでした。

unittest.TestCase から派生した python クラスで Tests を書きました

class TestEffortFormula(unittest.TestCase)

テストに順序を付ける必要があります (テストの順序に依存するべきではないとは言わないでください。私はそうします)。

テストに順序を付ける必要がある前に、テストを実行するために使用したコマンドは次のとおりです。

unittest.main(testRunner=TeamcityTestRunner())

次に、注文を消したかったので、次のことを試しました。

loader = unittest.TestLoader()
loader.sortTestMethodsUsing(None)
loader.loadTestsFromTestCase(TestEffortFormula)
suite = loader.suiteClass()

しかし、ここから、特に以前に行ったように、テストを実行する方法がわかりませんtestRunner=TeamcityTestRunner()

あなたの助けに感謝

4

2 に答える 2

6

Option 1.

One solution to this (as a workaround) was given here - which suggests writing the tests in numbered methods step1, step2, etc., then collecting and storing them via dir(self) and yielding them to one test_ method which trys each.

Not ideal but does what you expect. Each test sequence has to be a single TestClass (or adapt the method given there to have more than one sequence generating method).

Option 2.

Another solution, also in the linked question, is you name your tests alphabetically+numerically sorted so that they will execute in that order.

But in both cases, write monolithic tests, each in their own Test Class.

P.S. I agree with all the comments that say unit testing shouldn't be done this way; but there are situations where unit test frameworks (like unittest and pytest) get used to do integration tests which need modular independent steps to be useful. Also, if QA can't influence Dev to write modular code, these kinds of things have to be done.

于 2015-05-17T13:59:20.133 に答える