【问题标题】:xUnit.net v2 not discovering .NET Core Tests in Visual Studio 2015xUnit.net v2 未在 Visual Studio 2015 中发现 .NET Core 测试
【发布时间】:2015-08-13 21:19:43
【问题描述】:

我对这个问题感到非常沮丧。我已尝试更改版本号,但测试资源管理器中未显示任何测试。

在测试输出窗口我可以看到这个输出

Starting Microsoft.Framework.TestHost [C:\Users\sul\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta4\bin\dnx.exe --appbase "path to test project" Microsoft.Framework.ApplicationHost --port 63938 Microsoft.Framework.TestHost --port 63954 list ]
Unable to start Microsoft.Framework.TestHost
========== Discover test finished: 0 found (0:00:36.5471185) ==========

这太脆弱了,有时会显示测试然后它们就永远消失了。重新启动 VS 没有帮助,重新安装 xunit/xunit 运行器也没有帮助。

在另一个测试项目中,我得到了不同的输出,但仍然没有显示测试

Starting Microsoft.Framework.TestHost [C:\Users\sul\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta4\bin\dnx.exe --appbase "path to project" Microsoft.Framework.ApplicationHost --port 63938 Microsoft.Framework.TestHost --port 64421 list ]
Connected to Microsoft.Framework.TestHost
Discovering tests in 'path to project\project.json'
========== Discover test finished: 0 found (0:00:35.9341416) ==========

这是我的 project.json 的一部分

"commands": {
    "test": "xunit.runner.dnx"
  },
  "dependencies": {
    "Microsoft.AspNet.Http": "1.0.0-*",    
    "Microsoft.AspNet.Http.Core": "1.0.0-*",
    "Microsoft.AspNet.TestHost": "1.0.0-*",    
    "Moq": "4.2.1502.911",    
    "xunit": "2.0.0",
    "xunit.runners": "2.0.0"

【问题讨论】:

  • 我知道您已将此标记为已回答,但您是否有机会使用 ReSharper?我通过为 ReSharper 安装 xUnit 测试运行程序扩展并重新启动 Visual Studio 解决了这个问题。
  • 感谢您的评论。不,我没有使用 Resharper

标签: visual-studio-2015 dnx xunit .net-core xunit2


【解决方案1】:

我在使用 TFS 时遇到了一些问题。设置它并让它在一台机器上运行,然后转到另一台机器上,检查我的更改后得到最新的代码,一切都显示正确,但测试运行器根本没有找到任何测试。最后,对 Test 项目进行了简单的清理和重建,修复了它,现在它可以找到测试。

这是我的 project.json

"dependencies": { "Xunit": "2.1.0-beta2-*", "Xunit.runner.dnx": "2.1.0-beta2-*" }, "commands": { "test": "xunit.runner.dnx" },

注意依赖项中列出的 Xunit 中的大写 X。官方文档列表是小写的 x,但这不起作用。我已经给 repo 所有者发了电子邮件,让他知道这一点。

编辑:我已经与 XUnit 的作者交谈过,他向我保证小写 x 确实适用于他和其他人,并且它可能是一个损坏的包缓存。

【讨论】:

  • 如果你有一个损坏的包缓存,你如何修复它?我还被告知 Visual Studio 内部存在一些损坏,可以通过清理您的 %TEMP% 文件夹来清除
【解决方案2】:

通过确保所有解决方案项目中的所有包都引用相同的版本,我设法让它工作。

这发生在我身上,因为我引用了最新版本,正如您从 project.json 中看到的那样。

我做的另一件事是从不引用仅符合目的的单个包。例如,在我的商业项目中,我正在创建一个中间件,并且我引用了 Microsoft.AspNet.Http,因为我不需要完整的 MVC 包。这导致测试项目出现问题,因此我将 Microsoft.AspNet.MVC 添加到任何需要任何类型的 Http 交互(即 httpcontext)的项目中。

这可能不是理想的解决方法,但它确实对我有用。我希望这可以帮助遇到同样问题的其他人。

【讨论】:

    【解决方案3】:

    我遇到了一些问题,但它可以正常工作!

    "dependencies": {
        "Test.ANNe.Compiler": "1.0.0-*",
        "xunit.runner.dnx": "2.1.0-beta2-build79"
    },
    
    "commands": {
        "Test.Console": "Test.Console",
        "test": "xunit.runner.dnx"
    },
    

    我遇到的 3 个问题。 1.你只能有1个亚军! 2.在命令中测试 3.确保编译环境与dnvm中的环境设置匹配

    我注意到您使用的是 dnx-clr-win-x86.1.0.0,它是 dnx 但不是 dnx runner。

    【讨论】:

      【解决方案4】:

      以下依赖项(将在 project.json 中提供)对我有用 (original source):

      "dependencies": {
          "System.Collections": "4.0.10-beta-23019",
          "System.Linq": "4.0.0-beta-23019",
          "System.Threading": "4.0.10-beta-23019",
          "System.Runtime": "4.0.10-beta-23019",
          "Microsoft.CSharp": "4.0.0-beta-23019",
      
          "xunit": "2.1.0-*",
          "xunit.runner.dnx": "2.1.0-*",
          "xunit.runner.visualstudio": "2.0.1",
          "Microsoft.Framework.TestHost": "1.0.0-*",
          "Microsoft.Framework.ApplicationHost": "1.0.0-*"
      }
      

      【讨论】:

      • 只为我工作,将 xunit 的更新版本更新为“2.2.0-*”
      【解决方案5】:

      遇到了类似的问题,从 xunit 2.0.0-rc1 更改为 2.0.0-beta8 解决了这个问题。

      详情:

      • 项目 A(旧版本的 Microsoft.AspNet.Authentication.Test)工作
      • 项目 B(我的自定义项目)不起作用

      设置要使用的项目 B:

      "xunit.runner.aspnet": "2.0.0-aspnet-beta8*"
      

      代替:

      "xunit.runner.aspnet": "2.0.0-aspnet-*"
      

      解决了这个问题。项目 B 正在启动:

      xunit.runner.aspnet (2.0.0-aspnet-rc1-15669)
      

      项目A使用了以下project.json:

      {
          "compilationOptions": {
              "warningsAsErrors": "true"
          },
          "dependencies": {
              "Microsoft.AspNet.Authentication.Cookies": "1.0.0-*",
              "Microsoft.AspNet.Authentication.Facebook": "1.0.0-*",
              "Microsoft.AspNet.Authentication.Google": "1.0.0-*",
              "Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-*",
              "Microsoft.AspNet.Authentication.OAuthBearer": "1.0.0-*",
              "Microsoft.AspNet.Authentication.OpenIdConnect": "1.0.0-*",
              "Microsoft.AspNet.Authentication.Twitter": "1.0.0-*",
              "Microsoft.AspNet.DataProtection": "1.0.0-*",
              "Microsoft.AspNet.TestHost": "1.0.0-*",
              "Moq": "4.2.1312.1622",
              "xunit.runner.aspnet": "2.0.0-aspnet-*"
          },
          "commands": {
              "test": "xunit.runner.aspnet"
          },
          "frameworks": {
              "dnx451": {
                  "dependencies": {
                      "Shouldly": "1.1.1.1"
                  }
              }
          }
      }
      

      使用的项目 B:

      {
          "dependencies": {
              "Microsoft.AspNet.Authentication": "1.0.0-*",
              "Microsoft.AspNet.Authentication.OAuth": "1.0.0-*",
              "Microsoft.AspNet.Authentication.Cookies": "1.0.0-*",
              "Microsoft.Framework.DependencyInjection": "1.0.0-*",
              "Microsoft.AspNet.TestHost": "1.0.0-*",
              "Moq": "4.2.1312.1622",
              "xunit.runner.aspnet": "2.0.0-aspnet-*"
          },
          "commands": {
              "test": "xunit.runner.aspnet"
          },
          "frameworks": {
              "dnx451": {
                  "dependencies": {
                      "Shouldly": "1.1.1.1"
                  }
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2017-10-30
        • 2015-06-16
        • 2017-03-11
        • 1970-01-01
        • 2017-06-17
        • 1970-01-01
        • 1970-01-01
        • 2016-05-08
        • 2018-04-21
        相关资源
        最近更新 更多