2017-08-30 15 views
1

私はPyTestテストスイートをquickcheckからhypothesisに移行しました。これは非常にうまくいっていました(そしてすぐに隠されたケースのバグを発見しました)が、私が見る大きな違いの1つは、2つのプロパティマネージャ間のテスト分離です。pytest-hypothesis run間のテスト分離

quickcheck私は、関数スコープのフィクスチャを実行するたびに、異なるパラメータ値でテスト関数を複数回実行しているようです。これにより、pytestの出力にはさらに多くのドットが生じます。

hypothesisしかし、テスト機能の本体だけが複数回実行されているように見えます。たとえば、個々の実行間にトランザクションのロールバックはありません。これは、前の実行からのすべてのエントリがまだぶら下がっているので、テストがDBに何かを挿入するときなど、多数のDBエントリに対して確実にアサートできないことを意味します。

ここに明白なものがないか、またはこの動作が期待されていますか?もしそうなら、テストの内部で使用する変数として実行仮説の数を取得する方法はありますか?

答えて

0

あなたはちょっと立ち往生していますが、現在のところこの問題の解決策はありません。

仮説が動作する必要のある方法(pytest-quickcheckに比べて多くの改良点があります)は、テスト実行に関するpytestの前提を満たしていません。問題はmostly on the pytest sideです - 現在のpytestフィクスチャシステムでは、テストの実行を制御するうえでうまくいかないテストをどのように実行するかについての前提が非常に盛り込まれています。最後にこの問題を回避しようとすると、あきらめる前に一週間の仕事をして、基本的には何かが最善の側で変わる必要があると言います。もしそれがもっと良くなるのであればsomeone needs to fund this workです。

+0

です。答える時間をとっていただきありがとうございます。私は現在、私の主張でこれを考慮に入れて、これを回避しようとしています。実際、それにはいくつかの利点もあります。 :-) ところで、テスト中に使用する変数として実行仮説の数を取得する方法はありますか? もう一度おねがいします! –

関連する問題