2012-06-16 10 views
19

これは既知の問題であるかどうかわかりません。 VS2012 RC(Ultimate)とWin8 Release Previewを使用しています。ユニットテストライブラリ(メトロスタイルアプリ)を作成し、ユニットテストを作成しました。これにはasync/awaitキーワードが含まれています。しかし、ユニットテストプロジェクトをコンパイルすると、ユニットテストエクスプローラには私が書いたテストが表示されません。 async/awaitキーワードを除外すると、単体テストエクスプローラが、私が書いたテストで表示されます。誰もこれの前にこれで出会ったのですか、それとも私だけですか? asyncあるユニットテストエクスプローラにメトロアプリの非同期ユニットテストが表示されない

[TestClass] 
public class UnitTest1 
{ 
    [TestMethod] 
    public async void SomeAsyncTest() 
    { 
     var result = await StorageFile.GetFileFromPathAsync("some file path"); 
    } 
} 
+1

メソッドが「タスク」を返すようにするとどうなりますか? – svick

+0

それは面白いです。 mstestがクラス内のメソッドを誤ってフィルタリングしているのか、またはasyncキーワードがリフレクションを通して表示されないようにシグネチャを変更したかどうかは疑問です。 – bryanbcook

+0

スヴィック、そうです。タスクによってUTEに表示されます。 – Spock

答えて

28

ユニットテスト方法はvoidTaskを返す必要がありません。

これは、async voidのメソッドが追跡するのが難しいためです。ユニットテストライブラリがテストが完了したことを確認する簡単な方法はありません。 (難しいですが、これは不可能ではないと思いますが、これはカスタムSynchronizationContextを使用して行うことができます)

関連する問題