#4 Add logging to debug flaky tests.

This commit is contained in:
Chris R 2015-05-11 09:41:25 -07:00
parent 7dd670e192
commit 9b5a476622
3 changed files with 44 additions and 23 deletions

View File

@ -8,6 +8,7 @@ using Microsoft.AspNet.Server.Testing;
using Microsoft.AspNet.Testing.xunit; using Microsoft.AspNet.Testing.xunit;
using Microsoft.Framework.Logging; using Microsoft.Framework.Logging;
using Xunit; using Xunit;
using Xunit.Sdk;
namespace ServerComparison.FunctionalTests namespace ServerComparison.FunctionalTests
{ {
@ -101,7 +102,16 @@ namespace ServerComparison.FunctionalTests
}, logger, deploymentResult.HostShutdownToken); }, logger, deploymentResult.HostShutdownToken);
var responseText = await response.Content.ReadAsStringAsync(); var responseText = await response.Content.ReadAsStringAsync();
Assert.Equal("Hello World", responseText); try
{
Assert.Equal("Hello World", responseText);
}
catch (XunitException)
{
logger.LogWarning(response.ToString());
logger.LogWarning(responseText);
throw;
}
} }
} }
} }

View File

@ -10,6 +10,7 @@ using Microsoft.AspNet.Server.Testing;
using Microsoft.AspNet.Testing.xunit; using Microsoft.AspNet.Testing.xunit;
using Microsoft.Framework.Logging; using Microsoft.Framework.Logging;
using Xunit; using Xunit;
using Xunit.Sdk;
namespace ServerComparison.FunctionalTests namespace ServerComparison.FunctionalTests
{ {
@ -51,19 +52,28 @@ namespace ServerComparison.FunctionalTests
}, logger, deploymentResult.HostShutdownToken); }, logger, deploymentResult.HostShutdownToken);
var responseText = await response.Content.ReadAsStringAsync(); var responseText = await response.Content.ReadAsStringAsync();
Assert.Equal("Hello World", responseText); try
{
Assert.Equal("Hello World", responseText);
responseText = await httpClient.GetStringAsync("/Anonymous"); responseText = await httpClient.GetStringAsync("/Anonymous");
Assert.Equal("Anonymous?True", responseText); Assert.Equal("Anonymous?True", responseText);
response = await httpClient.GetAsync("/Restricted"); response = await httpClient.GetAsync("/Restricted");
Assert.Equal(HttpStatusCode.Unauthorized, response.StatusCode); Assert.Equal(HttpStatusCode.Unauthorized, response.StatusCode);
Assert.Contains("NTLM", response.Headers.WwwAuthenticate.ToString()); Assert.Contains("NTLM", response.Headers.WwwAuthenticate.ToString());
httpClientHandler = new HttpClientHandler() { UseDefaultCredentials = true }; httpClientHandler = new HttpClientHandler() { UseDefaultCredentials = true };
httpClient = new HttpClient(httpClientHandler) { BaseAddress = new Uri(deploymentResult.ApplicationBaseUri) }; httpClient = new HttpClient(httpClientHandler) { BaseAddress = new Uri(deploymentResult.ApplicationBaseUri) };
responseText = await httpClient.GetStringAsync("/Restricted"); responseText = await httpClient.GetStringAsync("/Restricted");
Assert.Equal("NotAnonymous", responseText); Assert.Equal("NotAnonymous", responseText);
}
catch (XunitException)
{
logger.LogWarning(response.ToString());
logger.LogWarning(responseText);
throw;
}
} }
} }
} }

View File

@ -119,6 +119,7 @@ namespace ServerComparison.FunctionalTests
} }
catch (XunitException) catch (XunitException)
{ {
logger.LogWarning(response.ToString());
logger.LogWarning(responseText); logger.LogWarning(responseText);
throw; throw;
} }
@ -130,11 +131,10 @@ namespace ServerComparison.FunctionalTests
private static async Task CheckContentLengthAsync(HttpClient client, ILogger logger) private static async Task CheckContentLengthAsync(HttpClient client, ILogger logger)
{ {
string responseText = string.Empty; var response = await client.GetAsync("contentlength");
var responseText = await response.Content.ReadAsStringAsync();
try try
{ {
var response = await client.GetAsync("contentlength");
responseText = await response.Content.ReadAsStringAsync();
Assert.Equal("Content Length", responseText); Assert.Equal("Content Length", responseText);
Assert.Null(response.Headers.TransferEncodingChunked); Assert.Null(response.Headers.TransferEncodingChunked);
Assert.Null(response.Headers.ConnectionClose); Assert.Null(response.Headers.ConnectionClose);
@ -142,6 +142,7 @@ namespace ServerComparison.FunctionalTests
} }
catch (XunitException) catch (XunitException)
{ {
logger.LogWarning(response.ToString());
logger.LogWarning(responseText); logger.LogWarning(responseText);
throw; throw;
} }
@ -149,11 +150,10 @@ namespace ServerComparison.FunctionalTests
private static async Task CheckConnectionCloseAsync(HttpClient client, ILogger logger) private static async Task CheckConnectionCloseAsync(HttpClient client, ILogger logger)
{ {
string responseText = string.Empty; var response = await client.GetAsync("connectionclose");
var responseText = await response.Content.ReadAsStringAsync();
try try
{ {
var response = await client.GetAsync("connectionclose");
responseText = await response.Content.ReadAsStringAsync();
Assert.Equal("Connnection Close", responseText); Assert.Equal("Connnection Close", responseText);
Assert.True(response.Headers.ConnectionClose, "/connectionclose, closed?"); Assert.True(response.Headers.ConnectionClose, "/connectionclose, closed?");
Assert.Null(response.Headers.TransferEncodingChunked); Assert.Null(response.Headers.TransferEncodingChunked);
@ -161,6 +161,7 @@ namespace ServerComparison.FunctionalTests
} }
catch (XunitException) catch (XunitException)
{ {
logger.LogWarning(response.ToString());
logger.LogWarning(responseText); logger.LogWarning(responseText);
throw; throw;
} }
@ -168,11 +169,10 @@ namespace ServerComparison.FunctionalTests
private static async Task CheckChunkedAsync(HttpClient client, ILogger logger) private static async Task CheckChunkedAsync(HttpClient client, ILogger logger)
{ {
string responseText = string.Empty; var response = await client.GetAsync("chunked");
var responseText = await response.Content.ReadAsStringAsync();
try try
{ {
var response = await client.GetAsync("chunked");
responseText = await response.Content.ReadAsStringAsync();
Assert.Equal("Chunked", responseText); Assert.Equal("Chunked", responseText);
Assert.True(response.Headers.TransferEncodingChunked, "/chunked, chunked?"); Assert.True(response.Headers.TransferEncodingChunked, "/chunked, chunked?");
Assert.Null(response.Headers.ConnectionClose); Assert.Null(response.Headers.ConnectionClose);
@ -180,6 +180,7 @@ namespace ServerComparison.FunctionalTests
} }
catch (XunitException) catch (XunitException)
{ {
logger.LogWarning(response.ToString());
logger.LogWarning(responseText); logger.LogWarning(responseText);
throw; throw;
} }
@ -187,11 +188,10 @@ namespace ServerComparison.FunctionalTests
private static async Task CheckManuallyChunkedAsync(HttpClient client, ILogger logger) private static async Task CheckManuallyChunkedAsync(HttpClient client, ILogger logger)
{ {
string responseText = string.Empty; var response = await client.GetAsync("manuallychunked");
var responseText = await response.Content.ReadAsStringAsync();
try try
{ {
var response = await client.GetAsync("manuallychunked");
responseText = await response.Content.ReadAsStringAsync();
Assert.Equal("Manually Chunked", responseText); Assert.Equal("Manually Chunked", responseText);
Assert.True(response.Headers.TransferEncodingChunked, "/manuallychunked, chunked?"); Assert.True(response.Headers.TransferEncodingChunked, "/manuallychunked, chunked?");
Assert.Null(response.Headers.ConnectionClose); Assert.Null(response.Headers.ConnectionClose);
@ -199,6 +199,7 @@ namespace ServerComparison.FunctionalTests
} }
catch (XunitException) catch (XunitException)
{ {
logger.LogWarning(response.ToString());
logger.LogWarning(responseText); logger.LogWarning(responseText);
throw; throw;
} }