3
votes

Visual Studio 2017 + .NET Core 2.0. I created a brand new xUnit test project from the template:

Project (.csproj) file:

    <Project Sdk="Microsoft.NET.Sdk">

      <PropertyGroup>
        <TargetFramework>netcoreapp2.0</TargetFramework>

        <IsPackable>false</IsPackable>
      </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
    <DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
    <PackageReference Include="xunit" Version="2.3.1" />
    <PackageReference Include="xunit.runner.console" Version="2.3.1" />
  </ItemGroup>

    </Project>

Test

public class Class1
{
    [Fact]
    public void Test1()
    {
        Assert.Equal(1, 1);
    }
}

Whenever running or debugging tests I get "Inconclusive: Test not run". What am I missing?

I downloaded this sample: https://github.com/xunit/xunit.integration

When building this solution I get:

Error MSB3073 The command "dotnet "C:\Users\supersuper.nuget\packages\xunit.runner.console\2.3.1\build..\tools\netcoreapp2.0\xunit.console.dll" "C:\Users\supersuper\Desktop\xunit.integration-master\console\v2x_netcoreapp20\bin\Debug\netcoreapp2.0\v2x_netcoreapp20.dll"" exited with code 1. v2x_netcoreapp20 C:\Users\supersuper\Desktop\xunit.integration-master\console\v2x_netcoreapp20\v2x_netcoreapp20.csproj 13

Visual Studio version:

Enter image description here

dotnet --version
2.0.2

Enter image description here

Is it because of ReSharper?

Enter image description here

1
Try xunit.analyzers project and run tests which are there. The project you have downloaded xunit.integration should not be run on .Net Core as it tests integration of xUnit VS extension..Jacek Blaszczynski
ok, forget the sample then. All i'm trying to do is run xUnit in Core 2. Please see my Test classShaneKm
It could be that you have an old version of VS 2017. See my edited answer for current RTM v15.4.2 templateJacek Blaszczynski
I am running ver 15.4.2 - please see Edit1ShaneKm
Try to install .NET Core SDK 2.0 for both x86 and x64. When you run tests VS selects by default x86 architecture and if you are missing .NET Core SDK 2.0 than that could be a reason I guess.Jacek Blaszczynski

1 Answers

4
votes

There are dependencies missing which should be added to get the ability to run tests in Visual Studio 2017 and from the console:

    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
    <DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
    <PackageReference Include="xunit.runner.console" Version="2.3.1" />

I have not verified if the second one is required to support Visual Studio. Nevertheless, my tests run from Test Explorer and show detailed run results. There are some issues with vstest.descoveryengine.exe which is not needed for MSTest v2 projects, but in general testing from both the console and Test Explorer works.

I have created an xUnit .NET Core test project from the template in Visual Studio 2017 v15.4.2 and everything works out of the box.

The project looks different:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>

    <IsPackable>false</IsPackable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0-preview-20170810-02" />
    <PackageReference Include="xunit" Version="2.2.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
  </ItemGroup>

</Project>

Test class:

using System;
using Xunit;

namespace XUnitTestProjectTmpl
{
    public class UnitTest1
    {
        [Fact]
        public void Test1()
        {

        }
    }
}

Test result:

Enter image description here