私はCodeIgniterを使用していくつかのプロジェクトを開発しており、SimpleTestで単体テストとWebテストを記述しています。私のテストは決定論的ではないことに気づきました。つまり、時間内に異なる出力を生成します。確率変数などに依存せず、厳密に決定論的である必要があるテストケースを意味します。
テストは互いに影響し合っているように見えます。多くの場合、すべてがうまくいくと、100のテストに合格したとしましょう。しかし、失敗する新しいテストメソッドを作成すると、他のいくつかのテストも失敗します。しかし、失敗したテストケースの問題を修正し、テストスイート全体を2〜3回再実行した後、スイート全体が再び合格することがよくあります。
これは一般的にWebTestCasesで発生します。
何が問題になるのか分かりますか?
共有されているクラス変数などは変更しません。
SimpleTestのコードを一瞥しました(多かれ少なかれ、フロー全体をすばやく分析するのは大きなことです)。さまざまなテストを起動する前に、ブラウザーのインスタンスが再作成されているようです。
最も奇妙なことは、再実行後、いくつかのエラーが消え、最後にすべてのエラーが消えることです。これに関係するキャッシュはありますか?
ウェブサイト上のAPIを除いて、ウェブ上のSimpleTestに関するドキュメント/ブログエントリ/フォーラム投稿は実際にはあまりないので、ヒントに感謝します。