.NET Core 2.0和xUnit无法运行

3

Visual Studio 2017 + .NET Core 2.0。我从模板中创建了一个全新的xUnit测试项目:

项目(.csproj)文件:

    <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>

测试

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

每当运行或调试测试时,我会得到"Inconclusive: Test not run"。 我错过了什么?
我下载了这个示例: https://github.com/xunit/xunit.integration 构建this解决方案时,我收到以下错误:

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版本:

Enter image description here

dotnet --version
2.0.2

Enter image description here

是因为ReSharper吗?

Enter image description here


尝试使用xunit.analyzers项目并运行其中的测试。您下载的xunit.integration项目不应在.Net Core上运行,因为它测试了xUnit VS扩展的集成。 - Jacek Blaszczynski
好的,请忘记示例。我只是想在Core 2中运行xUnit。请查看我的测试类。 - ShaneKm
可能是您使用的是旧版的VS 2017。请查看我编辑后的答案,获取当前的RTM v15.4.2模板。 - Jacek Blaszczynski
我正在运行版本15.4.2 - 请查看Edit1。 - ShaneKm
尝试安装.NET Core SDK 2.0的x86和x64版本。当您运行测试时,VS默认选择x86架构,如果您缺少.NET Core SDK 2.0,则可能是原因之一。 - Jacek Blaszczynski
这是一个Resharper问题:https://dev59.com/2KTja4cB1Zd3GeqPCHm6 - ShaneKm
1个回答

5

缺少的依赖项需要添加才能在Visual Studio 2017和控制台中运行测试:

    <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" />

我尚未确认第二个是否需要支持Visual Studio。不过,我的测试是从“测试资源管理器”中运行,并显示详细的运行结果。虽然对于MSTest v2项目来说,vstest.descoveryengine.exe存在一些问题,但总的来说从控制台和“测试资源管理器”都可以进行测试。

我已经在Visual Studio 2017 v15.4.2中使用模板创建了一个xUnit .NET Core测试项目,并且一切都可以正常工作。

该项目看起来不同:

<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>

测试类:

using System;
using Xunit;

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

        }
    }
}

Test result:

Enter image description here


我已经复制了你的csproj文件,但仍然无法运行测试,显示“测试未运行”。它能找到测试,但无法运行。你是否运行了Assert? - ShaneKm
1
@ShaneKm R# 单元测试运行器与内置的 VS 运行器不同,并且在处理 xUnit 测试时存在许多问题。因此,这可能是由于 R# 的原因。 - Ilya Chumakov
已解决:这是因为Resharper的原因。通过 Test => Run 运行测试可以正常工作!谢谢。 - ShaneKm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接