3

私が最近発見した一連のテストには、(間違った) 順序関係がありました。それらはすべて独立しているはずです。

Nose は毎回同じ順序でテストを実行しているように見えますが、魔法が起こらない限りこれらの依存関係を明らかにすることはできません。

実行するテストの順序をランダム化するようにノーズに指示するにはどうすればよいですか?

4

2 に答える 2

3

これを行う組み込みの方法はありません。私が周りを見回したところ、テスト順序をランダム化することを目的としたこのノーズプラグインがあります:

https://github.com/my8bird/nose-randomize

ソースからは、unittest.TestCase を継承したテストでのみ機能するようです。それがうまくいかない場合は、自分で作成するための出発点として使用できます。

依存関係を公開するために 1 回限りの操作が必要な場合は、nose にテストのリストを渡すことができます。怠惰な方法は、テストのリストを取得し、すべての順列を 1 つずつ渡すことです。

nosetests /path/to/testA.py /path/to/testB.py /path/to/testC.py
nosetests /path/to/testA.py /path/to/testC.py /path/to/testB.py
nosetests /path/to/testB.py /path/to/testA.py /path/to/testC.py
nosetests /path/to/testB.py /path/to/testC.py /path/to/testA.py
nosetests /path/to/testC.py /path/to/testA.py /path/to/testB.py
nosetests /path/to/testC.py /path/to/testB.py /path/to/testA.py

実行するには一晩中かかるかもしれませんが、少なくとも問題がどこにあるかを知ることができます.

これで始められることを願っています。

于 2012-12-14T02:13:23.023 に答える