xUnit.net v2未在Visual Studio 2015中发现.NET核心测试

时间:2015-05-31 10:02:32

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

我真的很沮丧这个问题。我已经尝试更改版本号,但测试资源管理器中没有显示任何测试。

在测试输出窗口中,我可以看到此输出

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"

5 个答案:

答案 0 :(得分:5)

我在使用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,但这不起作用。我已通过电子邮件通知回购所有人让他意识到这一点。

编辑:我已经与XUnit的作者交谈,他向我保证小写x对他和其他人有用,并且它可能是一个损坏的包缓存。 < / p>

答案 1 :(得分:1)

我设法通过确保所有解决方案项目中的所有软件包引用相同的版本来实现此目的。

这件事发生在我身上,因为我正在引用最新版本,你可以从project.json看到。

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

这可能不是理想的修复,但它对我有用。我希望这可以帮助其他人遇到同样的问题。

答案 2 :(得分:1)

我遇到了一些问题,但确实有效!

while(1){

     float temp, humi;
     int err;
     if((err=dht11.read(humi, temp))==0)
      {

        Serial.println();

        Serial.print("***");
        Serial.print(temp);
        Serial.print("|");
        Serial.print(humi);
        Serial.print("|");
        Serial.print(ledPin);
        Serial.print("|");
        Serial.print(id_temp);
        Serial.print("|");
        Serial.print(id_hum);
        Serial.print("|");
        Serial.print(id_lum);
        Serial.println();
      } 
}
我有3个问题。 1.你只能有1个跑步者! 2.测试命令 3.确保编译环境与dnvm中的环境设置匹配

我注意到你使用dnx-clr-win-x86.1.0.0这是dnx而不是dnx runner。

答案 3 :(得分:1)

以下依赖项(将在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-*"
}

答案 4 :(得分:1)

遇到类似问题,并从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"
            }
        }
    }
}