私は、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内から正常に動作します。他のすべての単体テストは、コマンドラインから期待通りに実行されます。
ありがとうございます!
NuGetパッケージを復元するためのビルド設定はありますか? – toadflakz