Skip to content

Instantly share code, notes, and snippets.

@smudge202
Created December 8, 2017 13:19
Show Gist options
  • Save smudge202/48e49f1354a59412941f796a5ffe4ad8 to your computer and use it in GitHub Desktop.
Save smudge202/48e49f1354a59412941f796a5ffe4ad8 to your computer and use it in GitHub Desktop.
Test shenanigans
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<RuntimeFrameworkVersion>2.0.3</RuntimeFrameworkVersion>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
<PackageReference Include="xunit" Version="2.3.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
</ItemGroup>
</Project>
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using Xunit;
namespace TestDiffRepro.Tests
{
public class UnitTest1
{
[Theory, ClassData(typeof(TheoryRepro))]
public void Test1(HttpStatusCode statusCode)
{
Assert.True(true);
}
}
public class TheoryRepro : IEnumerable<object[]>
{
private static readonly IEnumerable<object[]> Data = Enum.GetValues(typeof(HttpStatusCode))
.Cast<HttpStatusCode>()
.Select(statusCode => new object[] { statusCode });
public IEnumerator<object[]> GetEnumerator() => Data.GetEnumerator();
IEnumerator IEnumerable.GetEnumerator() => Data.GetEnumerator();
}
}
@smudge202
Copy link
Author

test-diff-all

3 test runners reporting 3 different result sets. Why!?

@smudge202
Copy link
Author

smudge202 commented Dec 8, 2017

TestRunners will agree on count if Distinct applied to the data:

private static readonly IEnumerable<object[]> Data = Enum.GetValues(typeof(HttpStatusCode))
  .Cast<HttpStatusCode>()
  .Distinct()
  .Select(statusCode => new object[] { statusCode });

As Matt Ellis points out on twitter this is likely something to do with shared status codes (i.e. Ambiguous & MultipleChoices both have the value 300).

Resharper still fails one of the tests consistently with the message Aborted even after the Distinct change..

@smudge202
Copy link
Author

smudge202 commented Dec 8, 2017

Logs from Resharper EAP 6:

2017.12.08 14:00:02.302    INFO DiscoveryStage completed
2017.12.08 14:00:02.303    INFO BuildPipelineStage started
2017.12.08 14:00:02.310    INFO BuildPipelineStage completed
2017.12.08 14:00:02.310    INFO ApplyRulesStage started
2017.12.08 14:00:02.317    INFO Got 44 elements (1 explicit) to run
2017.12.08 14:00:02.318 VERBOSE Marking 44 elements as Pending
2017.12.08 14:00:02.338 VERBOSE Marking elements as Pending completed
2017.12.08 14:00:02.341 VERBOSE Distributing 44 elements into runs
2017.12.08 14:00:02.389 VERBOSE Distributing elements completed
2017.12.08 14:00:02.389    INFO Created 1 unit-test runs
2017.12.08 14:00:02.390    INFO ApplyRulesStage completed
2017.12.08 14:00:02.390    INFO RunTestsStage started
2017.12.08 14:00:02.412 VERBOSE Running up to 1 unit-test runs in parallel
2017.12.08 14:00:02.417    INFO Run: df207619-a3f9-4b6b-948c-02c5eb7ec010 - Started
2017.12.08 14:00:02.418 VERBOSE     Provider: xUnit.net
    Project: TestDiffRepro.Tests
    Target Framework: .NETCoreApp,Version=v2.0
    Strategy: JetBrains.ReSharper.UnitTestProvider.Xunit.DotNetCore.XunitDotNetVsTestRunStrategy
    Runtime Enviroment:
        Platform Type: x64
        Platform Version: v4_0
2017.12.08 14:00:02.433   TRACE Register handler for message type 'TestSession.Message', protocol version '1'
2017.12.08 14:00:02.433   TRACE Register handler for message type 'ProtocolVersion', protocol version '<unset>'
2017.12.08 14:00:02.433   TRACE Register handler for message type 'TestSession.Connected', protocol version '<unset>'
2017.12.08 14:00:02.433   TRACE Register handler for message type 'TestExecution.CustomTestHostLaunch', protocol version '1'
2017.12.08 14:00:02.434   TRACE Register handler for message type 'TestExecution.Completed', protocol version '1'
2017.12.08 14:00:02.434   TRACE Register handler for message type 'TestExecution.StatsChange', protocol version '1'
2017.12.08 14:00:02.436    INFO Starting process: dotnet vstest /port:52930 
2017.12.08 14:00:02.438    INFO Started process with pid 8972
2017.12.08 14:00:02.687   TRACE Processing message 'TestSession.Connected'
2017.12.08 14:00:02.687   TRACE Processed message 'TestSession.Connected'
2017.12.08 14:00:02.694   TRACE Processing message 'ProtocolVersion'
2017.12.08 14:00:02.696    INFO Using test adapter: C:\Users\tommy.local\source\repos\TestDiffRepro\TestDiffRepro.Tests\bin\Debug\netcoreapp2.0\xunit.runner.visualstudio.dotnetcore.testadapter.dll
2017.12.08 14:00:02.743   TRACE Processed message 'ProtocolVersion'
2017.12.08 14:00:02.824   TRACE Processing message 'TestExecution.CustomTestHostLaunch'
2017.12.08 14:00:02.826   TRACE Processed message 'TestExecution.CustomTestHostLaunch'
2017.12.08 14:00:02.830    INFO Starting process: C:\Program Files\dotnet\dotnet.exe exec --runtimeconfig "C:\Users\tommy.local\source\repos\TestDiffRepro\TestDiffRepro.Tests\bin\Debug\netcoreapp2.0\TestDiffRepro.Tests.runtimeconfig.json" --depsfile "C:\Users\tommy.local\source\repos\TestDiffRepro\TestDiffRepro.Tests\bin\Debug\netcoreapp2.0\TestDiffRepro.Tests.deps.json" "C:\Users\tommy.local\.nuget\packages\microsoft.testplatform.testhost/15.5.0\lib/netstandard1.5/testhost.dll" --port 52933 --parentprocessid 8588
2017.12.08 14:00:02.831    INFO Started process with pid 5620
2017.12.08 14:00:03.701   TRACE Processing message 'TestSession.Message'
2017.12.08 14:00:03.701    INFO [xUnit.net 00:00:00.4212567]   Starting:    TestDiffRepro.Tests
2017.12.08 14:00:03.701   TRACE Processed message 'TestSession.Message'
2017.12.08 14:00:03.922   TRACE Processing message 'TestExecution.StatsChange'
2017.12.08 14:00:03.950   TRACE Processed message 'TestExecution.StatsChange'
2017.12.08 14:00:03.952   TRACE Processing message 'TestExecution.StatsChange'
2017.12.08 14:00:03.954   TRACE Processed message 'TestExecution.StatsChange'
2017.12.08 14:00:03.962   TRACE Processing message 'TestExecution.StatsChange'
2017.12.08 14:00:03.964   TRACE Processed message 'TestExecution.StatsChange'
2017.12.08 14:00:03.975   TRACE Processing message 'TestExecution.StatsChange'
2017.12.08 14:00:03.978   TRACE Processed message 'TestExecution.StatsChange'
2017.12.08 14:00:03.980   TRACE Processing message 'TestSession.Message'
2017.12.08 14:00:03.980    INFO [xUnit.net 00:00:00.6489009]   Finished:    TestDiffRepro.Tests
2017.12.08 14:00:03.980   TRACE Processed message 'TestSession.Message'
2017.12.08 14:00:04.006   TRACE Processing message 'TestExecution.StatsChange'
2017.12.08 14:00:04.008   TRACE Processed message 'TestExecution.StatsChange'
2017.12.08 14:00:04.018    INFO Process C:\Program Files\dotnet\dotnet.exe:5620 has exited
2017.12.08 14:00:04.022    INFO Run: df207619-a3f9-4b6b-948c-02c5eb7ec010 - Completed
2017.12.08 14:00:04.022    INFO RunTestsStage completed
2017.12.08 14:00:04.038    INFO Finishing run
2017.12.08 14:00:04.041    WARN Element TestDiffRepro.Tests.UnitTest1 was left running after its run completion.
2017.12.08 14:00:04.041    WARN Element TestDiffRepro.Tests.UnitTest1.Test1 was left running after its run completion.
2017.12.08 14:00:04.042    INFO Run is finished

@smudge202
Copy link
Author

Logs from Resharper EAP 9:

2017.12.08 14:16:20.219   TRACE Processing message 'TestSession.Connected'
2017.12.08 14:16:20.220   TRACE Processed message 'TestSession.Connected'
2017.12.08 14:16:20.226   TRACE Processing message 'ProtocolVersion'
2017.12.08 14:16:20.228    INFO Using test adapter: C:\Users\tommy.local\source\repos\TestDiffRepro\TestDiffRepro.Tests\bin\Debug\netcoreapp2.0\xunit.runner.visualstudio.dotnetcore.testadapter.dll
2017.12.08 14:16:20.283   TRACE Processed message 'ProtocolVersion'
2017.12.08 14:16:20.378   TRACE Processing message 'TestExecution.CustomTestHostLaunch'
2017.12.08 14:16:20.380   TRACE Processed message 'TestExecution.CustomTestHostLaunch'
2017.12.08 14:16:20.384    INFO Starting process: C:\Program Files\dotnet\dotnet.exe exec --runtimeconfig "C:\Users\tommy.local\source\repos\TestDiffRepro\TestDiffRepro.Tests\bin\Debug\netcoreapp2.0\TestDiffRepro.Tests.runtimeconfig.json" --depsfile "C:\Users\tommy.local\source\repos\TestDiffRepro\TestDiffRepro.Tests\bin\Debug\netcoreapp2.0\TestDiffRepro.Tests.deps.json" "C:\Users\tommy.local\.nuget\packages\microsoft.testplatform.testhost/15.5.0\lib/netstandard1.5/testhost.dll" --port 53198 --parentprocessid 20380 --diag "C:\Users\tommy.local\AppData\Local\Temp\JetLogs\vstest.2017-12-08T14-16-19.host.17-12-08_14-16-20_33531_7.log"
2017.12.08 14:16:20.386    INFO Started process with pid 5284
2017.12.08 14:16:20.762   TRACE Processing message 'TestSession.Message'
2017.12.08 14:16:20.762    INFO Logging TestHost Diagnostics in file: C:\Users\tommy.local\AppData\Local\Temp\JetLogs\vstest.2017-12-08T14-16-19.host.17-12-08_14-16-20_33531_7.log
2017.12.08 14:16:20.762   TRACE Processed message 'TestSession.Message'
2017.12.08 14:16:21.330   TRACE Processing message 'TestSession.Message'
2017.12.08 14:16:21.330    INFO [xUnit.net 00:00:00.4359111]   Starting:    TestDiffRepro.Tests
2017.12.08 14:16:21.330   TRACE Processed message 'TestSession.Message'
2017.12.08 14:16:21.558   TRACE Processing message 'TestExecution.StatsChange'
2017.12.08 14:16:21.597   TRACE Processed message 'TestExecution.StatsChange'
2017.12.08 14:16:21.599   TRACE Processing message 'TestExecution.StatsChange'
2017.12.08 14:16:21.601   TRACE Processed message 'TestExecution.StatsChange'
2017.12.08 14:16:21.602   TRACE Processing message 'TestExecution.StatsChange'
2017.12.08 14:16:21.604   TRACE Processed message 'TestExecution.StatsChange'
2017.12.08 14:16:21.611   TRACE Processing message 'TestExecution.StatsChange'
2017.12.08 14:16:21.613   TRACE Processed message 'TestExecution.StatsChange'
2017.12.08 14:16:21.616   TRACE Processing message 'TestSession.Message'
2017.12.08 14:16:21.616    INFO [xUnit.net 00:00:00.6650847]   Finished:    TestDiffRepro.Tests
2017.12.08 14:16:21.616   TRACE Processed message 'TestSession.Message'
2017.12.08 14:16:21.642   TRACE Processing message 'TestExecution.StatsChange'
2017.12.08 14:16:21.643   TRACE Processed message 'TestExecution.StatsChange'
2017.12.08 14:16:21.666    INFO Process C:\Program Files\dotnet\dotnet.exe:5284 has exited
2017.12.08 14:16:21.669    INFO Run: 9044eed2-5bac-407e-b358-99cac0b26dac - Completed
2017.12.08 14:16:21.669    INFO RunTestsStage completed
2017.12.08 14:16:21.690    INFO Finishing run
2017.12.08 14:16:21.693    WARN Element TestDiffRepro.Tests.UnitTest1 was left running after its run completion.
2017.12.08 14:16:21.694    WARN Element TestDiffRepro.Tests.UnitTest1.Test1 was left running after its run completion.
2017.12.08 14:16:21.696    INFO Run is finished

@smudge202
Copy link
Author

Pastebin of full log file for the EAP 9 test run: https://pastebin.com/EynMDkwa

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment