3

Python C/C++ バインディングを呼び出す一連のテストがあります。これらのテストを鼻で実行します。

nosetests myapp
.....
----------------------------------------------------------------------
Ran 5 tests in 0.009s

ときどき、バインディングにバグがあり、Python インタープリターがクラッシュすることがあります (たとえば、テスト番号 3 で)。

test03_badcode (myapp.tests.test_badcode) ... Segmentation fault

質問: これから回復する最善の方法は何ですか? 理想的には、これらのクラッシュ自体をノーズで処理したいのですが、これを達成するのは不可能であることは理解しています。私が考えた次の解決策は、テストを記録して機首を再起動し、悪いテストをスキップすることです。私の例では、これはテスト 1、2、4、および 5 を実行することを意味しますが、テスト 3 は実行しません。鼻を使ってプログラムでこれを達成する方法はありますか? 他に良いアイデアはありますか?

4

1 に答える 1

3

鼻でいつものように、そのためのプラグインがあります。 Insulateは、各テストを個別のプロセスで実行します。これにより速度が低下しますが、1 つのテストでのクラッシュが他のテストに影響を与えないことが保証されます。

于 2013-01-15T13:48:49.480 に答える