2016-10-12 4 views
0

私は、TestServerをセットアップし、要求を作成し、応答を検証するワーキングユニットテストを行っています。mstest.exeからOWIN TestServerを起動します。

これらの単体テストをVisual Studioテストエクスプローラから実行すると、素晴らしい結果が得られます。 TestServerがセットアップされ、要求が行われ、正しい応答が返されます。

コマンドライン(CIサーバー上)から同じコードを実行すると、TestServerは常に「見つかりません」のステータスコードを返します。他に例外はありません。コマンドラインからOWINを起動するときに追加する必要のあるコマンドはありますか?

MSTest.exeコマンドは次のようになります。

MSTest.exe /testcontainer:myTests.dll /resultsfile:testresults.trx 

私の試験方法は、次のようになります。

[TestMethod] 
public async Task GetToken() 
{ 
    using (var server = TestServer.Create<TestStartupConfiguration>()) 
    { 
     var response = await server.CreateRequest("/TokenUrl").And(x => x.Content = new FormUrlEncodedContent(new[] 
     { 
      new KeyValuePair<string, string>("username", user.UserName), 
      new KeyValuePair<string, string>("password", user.Password), 
      new KeyValuePair<string, string>("grant_type", "password") 
     })).PostAsync(); 

     response.IsSuccessStatusCode.Should().BeTrue("this is the expected return value of an Access Token request"); 
     var responseString = await response.Content.ReadAsStringAsync(); 
     responseString.Should().NotBeNullOrWhiteSpace("the response of an Access Token request should not be empty"); 
    } 
} 

そして、私が言ったように、テストは、Visual Studio内から正常に動作します。他のすべての単体テストは、コマンドラインから期待通りに実行されます。

ありがとうございます!

+0

NuGetパッケージを復元するためのビルド設定はありますか? – toadflakz

答えて

0

私の問題を解決しました。 NotFoundエラーは、私がテストしたいOAuth設定がAllowInsecureHttpプロパティがユニットテストとして実行されているときfalseに設定されているために発生しました。私はがモードだけでなく、ユニットテストが実行されているときにもtrueであることを確認しました。

これで完全に動作します。

関連する問題