Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing VS 2017未在.NET Core上发现测试_Unit Testing_.net Core_Visual Studio 2017_Test Explorer - Fatal编程技术网

Unit testing VS 2017未在.NET Core上发现测试

Unit testing VS 2017未在.NET Core上发现测试,unit-testing,.net-core,visual-studio-2017,test-explorer,Unit Testing,.net Core,Visual Studio 2017,Test Explorer,有人能帮我让VS2017与.NET核心测试项目一起工作吗 我尝试从VS2017模板为.NET Core创建MSTest和xUnit单元测试项目。它们都不能在测试资源管理器中工作(未发现),但是从项目文件夹运行dotnet测试可以正常工作 复制步骤: 在VS 2017中创建新项目 选择单元测试项目(.NET Core)或xUnit测试项目(.NET Core)模板 实现一些任意的单元测试 构建解决方案 转到文本资源管理器并尝试运行所有 此时,输出窗口应该告诉您发现了0个测试 .csproj文件:

有人能帮我让VS2017与.NET核心测试项目一起工作吗

我尝试从VS2017模板为.NET Core创建MSTest和xUnit单元测试项目。它们都不能在测试资源管理器中工作(未发现),但是从项目文件夹运行
dotnet测试可以正常工作

复制步骤:

  • 在VS 2017中创建新项目
  • 选择
    单元测试项目(.NET Core)
    xUnit测试项目(.NET Core)
    模板
  • 实现一些任意的单元测试
  • 构建解决方案
  • 转到文本资源管理器并尝试运行所有
  • 此时,输出窗口应该告诉您发现了0个测试

    .csproj
    文件:

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <TargetFramework>netcoreapp1.1</TargetFramework>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
        <PackageReference Include="xunit" Version="2.2.0" />
        <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
      </ItemGroup>
    
    </Project>
    
    
    netcoreapp1.1
    
    如果我尝试从针对.NET Framework(完整,而不是.NET核心)的模板创建MSTest单元测试项目,它会起作用


    有什么想法吗?

    我想我也经历过同样的行为。尝试构建您的解决方案,以便VS能够发现您的测试。否则,请共享您的测试csproj文件,以确保您引用了正确的软件包。我的建议是:

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp1.1</TargetFramework>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
        <PackageReference Include="xunit" Version="2.2.0" />
        <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
      </ItemGroup>
    
    </Project>
    
    
    Exe
    netcoreapp1.1
    
    更新:我已经玩了一段时间,看起来VS在没有
    Exe的情况下找不到测试

    更新2:尝试将以下内容添加到csproj中,因为我在某些情况下会看到VS添加

    <ItemGroup>
      <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
    </ItemGroup>
    
    
    
    我也有同样的问题。我通过从nuget安装“Microsoft.NET.Test.Sdk”包解决了这个问题

    最后,通过更改我的系统
    PATH
    env解决了问题。变量从
    C:\Program Files\dotnet\
    C:\Progra~1\dotnet\
    ,如中所述


    感谢Alexey在评论中的建议:)

    我在VS2017中发现了.NET Core上没有MSTest单元测试

    测试输出只报告它发现了零个测试

    在命令提示符下运行
    dotnet test MyProject.csproj-t
    时,它建议我没有安装正确的.NET核心运行时以匹配项目的RuntimeFrameworkVersion


    安装最新的VS 2017更新和.NET核心运行时解决了这个问题。

    project.json
    迁移到
    csproj
    后,我也遇到了同样的问题。 并通过删除
    net451
    目标框架并仅保留
    netcoreapp1.1
    解决了该问题。现在它的作品完美,发现每一次


    当然,如果您需要许多框架目标,您不应该这样做,只需使用CLI来测试它们…

    这可能是由于处理器体系结构的项目设置不一致造成的。测试项目目标必须与测试默认处理器体系结构匹配


    检查

    我也遇到了这个问题,通过确保我的项目和测试项目在.csproj文件中具有相同的目标框架版本,解决了这个问题

    <TargetFramework>netcoreapp1.0</TargetFramework>
    
    netcoreapp1.0
    
    还要确保当有多个测试项目和相同的输出目录时,*.csproj文件中没有混合包引用版本,还要更新测试项目的包,特别是MSTest.TestAdapter和MSTest.TestFramework

    我没有提到,但我确实构建了,不幸的是,建筑没有帮助。我用
    .csproj
    文件编辑了我的文章。与您的唯一区别是那里的
    OutputType
    标记。我尝试添加它,但没有任何区别。@valorl尝试添加
    OutputType
    并重新生成。因此,我重新启动了电脑,用一个干净的xunit测试项目创建了一个干净的解决方案,添加了
    Exe
    ,重新生成并尝试运行所有
    。没有成功。。。甚至有VS作为管理员运行。我会尝试重新安装,可能会有帮助,即使在我重新安装后也不会成功。。。我的VS版本是Community 2017,VisualStudio/15.0.0-RTW+26228.4
    如果有帮助,在添加
    输出类型
    行时,我在
    bin\debug\netcoreapp1.1
    中没有看到任何
    .exe
    文件。对的回答帮助我解决了问题。这确实有效。谢谢!可能重复的谢谢!我正在运行VS2017 Pro 15.1,这是唯一解决我的问题。谢谢DGreen。我还对VS2017发现单元测试存在问题。虽然我引用了正确的框架,但您提到的上述命令帮助我发现我没有将单元测试类访问修饰符设置为public!谢谢,我运行了该命令,并得到一个警告,即测试类未标记为public,我添加了public关键字,现在我可以查看我的测试。我添加了Microsoft.NET.test.Sdk,但它没有解决我的问题。我来这里是为了分享完全相同的内容。我在解决方案中的几个项目中有一个项目神秘地没有显示测试结果。最后,这就是解决问题的方法。所以+1是我的。当我的项目从.NETFrameworkV4.6.1切换到.NETCore3.1后,我的测试停止显示时,这对我来说是有效的