Visual Studio 2012 プロジェクトに MPI.Net を使用しています。すべての単体テスト (標準の Microsoft 単体テスト プロジェクト) は、実行すると失敗しますが、デバッグすると成功します。単一のクラス (「foo」を返すだけ) を持つダミー プロジェクトを作成し、問題を再現しました。実際に何かをする前に、MPI 環境が完成しているようです。タイミングの問題かどうかを確認するために、適切な場所に Sleep を追加しようとしましたが、別のもののようです。誰もこれを経験したことがありますか?
私のテスト方法は次のとおりです。
[TestMethod]
public void TestMethod1()
{
string[] args = null;
using (MPI.Environment mpiEnv = new MPI.Environment(ref args))
{
if (MPI.Environment.Finalized)
{
throw new Exception("mpi finalized");
}
else
{
MPIdotNetUnitTestIssue.Class1 bar = new MPIdotNetUnitTestIssue.Class1();
Assert.AreEqual("foo", bar.Foo());
}
}
}
テストが「実行」されている場合は例外が発生し、ブレークポイントがなくても「デバッグ」されている場合はテストに合格します。