2012-09-27 14 views
7

私はWindows 8リリースプレビューでVisual Studio Express 2012を使用しています。ユニットテストがテストエクスプローラに表示されないようです。ユニットテストが表示されない

私はTestApp.Entityというクラスがあり、ここでTestApp.EntityTest ...

が私のコードです:

namespace TestApp.Entity.Test 
{ 
    using System; 
    using System.Net.Http; 
    using Microsoft.VisualStudio.TestPlatform.UnitTestFramework; 
    using TestApp.Domain; 

    [TestClass] 
    public class EntityTests 
    { 
     [TestMethod] 
     public async void TestObject1Deserialize() 
     { 
      Uri agencyUri = new Uri("*removed*"); 
      HttpClient httpClient = new HttpClient(); 
      HttpResponseMessage response = await httpClient.GetAsync(agencyUri); 

      string responseBodyAsText = await response.Content.ReadAsStringAsync(); 
      List<Agency> agencyList = Deserializers.AgencyDeserialize(responseBodyAsText); 

      CollectionAssert.Contains(agencyList, new Agency() { Tag = "*removed*", Title = "*removed*", ShortTitle = "", RegionTitle = "*removed*" }); 
     } 

    } 
} 

「私はそれは私が行うために必要なすべてだと仮定しますが、彼らはまだドンテストエクスプローラに表示されます。どんな助言も役に立つでしょう。

+7

Windows 8 RTMがありません。そして、正しく動作するためには、 'async void'ではなく' async Task'をユニットテストする必要があります。 –

答えて

5

Stephen Clearyによれば、「正しく動作するには、async voidの代わりにユニットテストasync Taskを作成する必要があります」。

これで問題は解決し、テストが表示されました。私がボイドを使用したときにエラーが現れなかったのは奇妙ですが、今私は知っています。ありがとうございました!

+0

2012年の対戦では動作しません... [テスト]または[テストケース]では使用できません。 [TestMethod]もそこにはなかった... – UnknownJoe

1

テストクラスとテストメソッドを含むプロジェクトを含め、すべてのアプリケーションで再ビルドを実行します。すぐにTest Explorerに表示されます。

+2

さて、問題は再構築後に表示されていないということでした。問題を解決するために、非同期タスクを非同期タスクに変更する必要がありました。 – jyanks

+1

あなたはそれを働いてうれしいです。 – akton

+0

これも私のために修正されました。それはそれを直すのに直感的ではありません。なぜMSはテストを非同期無効にしますか?それはNUnitのような他のテストフレームワークを許す/想定するものですか?たとえそれがあっても、それはまだ私には分かりません。 –

2

だから私は、次をインストールし、私は、Visual Studio 2012を持っていると私はテストエクスプローラでテストを見ることができなかった、

:私のために問題を修正しNUnit Test Adapter

関連する問題