14

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

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

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

5 回答 5

5

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

这是我的 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 确实适用于他和其他人,并且它可能是一个损坏的包缓存。

于 2015-06-11T17:44:59.020 回答
1

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

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

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

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

于 2015-05-31T11:52:34.137 回答
1

我遇到了一些问题,但让它工作了!

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

于 2015-06-02T06:59:02.860 回答
1

以下依赖项(将在 project.json 中提供)对我有用(原始来源):

"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-*"
}
于 2015-07-30T12:14:04.493 回答
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"
            }
        }
    }
}
于 2015-10-01T15:06:31.427 回答