2010-12-27 10 views
1

私はCodeIgniterでいくつかのプロジェクトを開発し、単体テストとWebテストをSimpleTestに書いています。私のテストは確定的ではなく、時間通りに異なる出力が得られることに気付きました。厳密に決定論的で、ランダム変数などに依存しないテストケースを意味します。SimpleTest WebTestCasesは、確定的な出力ではなく、互いに影響を及ぼします

テストはお互いに影響を与えるように見えます。多くの場合、すべてがうまくいったら、100回のテストに合格するとしますが、失敗した新しいテストメソッドを書くと、いくつかの他のテストも失敗します。しかし、多くの場合、私の失敗したテストケースで問題を修正した後、全体のテストスイートを2〜3回再実行します。スイート全体がもう一度パスします。

これは一般にWebTestCasesで発生します。

何が問題なのか考えていますか?

私はなど

を共有している任意のクラス変数を変更していない私は、SimpleTestでのコードを一瞥してきました(多かれ少なかれ、それはすぐに全体の流れを分析するために大きいです)、それは、ブラウザのインス​​タンスのように見えます異なるテストを開始する前に再作成されます。

再現後、いくつかのエラーが消えて、最後はすべてが消えてしまうのが最も奇妙なことです。これにはいくつかのキャッシングが関係していますか?

SimpleTestについてのドキュメント/ブログエントリ/フォーラムの投稿は、Web上のAPIを除いて実際にあまり多くはないので、ヒントに感謝します。それはあるかもしれない

答えて

0

:私はかなり徹底的な調査を行い、SimpleTestのライブラリにバグがあるようです、

許(編集は別のポストとしての答えを移動します)。

fsockopenを使用して接続を開き、fwriteでリクエストを送信してから、ソケットからの応答を誤って取得します。つまり、ソケットから0バイトを読み込むことができますが、私たちは間違っていると思いますが、サーバーがビジー状態になってしまい、データを後で送信してしまいます。そのようにして、私たちは全体の応答を読まず、部分的な応答のみに対してテストを行い、失敗に終わります。

0

もの:

  • キャッシュ - あなたがキャッシュされて悪い結果のどこかにチェーンで ?
  • 誤解 - は適切なものをテストしていますか?
  • 不良データ - あなたは データベースの最上部、およびデータベース内のデータが破損し 失敗、 でこれをテストしている場合は、あなたの 言及のような結果が表示される場合があります。
+0

これらのものはありませんが、提案に感謝します。私が見つけたものを編集して投稿しました。 –

+0

私は見る...これは私がテストスイートを使用したくない多くの理由の一つです。 – DampeS8N

関連する問題