gpt4 book ai didi

.net - 为什么 "dotnet test"在 ubuntu LTS 14.04 上失败?

转载 作者:行者123 更新时间:2023-11-28 20:40:38 24 4
gpt4 key购买 nike

谁能帮我弄清楚如何在 ubuntu 中使用“dotnet”设置单元测试?现在 dnx 和 dnu 已被 dotnet 取代,我遇到了问题。

我有一个包含以下内容的 project.json 文件:

{                                                         
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": false
},

"dependencies": {
"Microsoft.NETCore.Runtime": "1.0.1-beta-*",
"xunit": "2.1.0-*",
"xunit.runner.dnx": "2.1.0-*"
},

"commands": {
"test": "xunit.runner.dnx"
},

"frameworks": {
"dnxcore50": { }
}
}

我在运行这个命令时遇到了问题:

dotnet test

下面是吐出来的:

dotnet-test Error: 0 : System.DllNotFoundException: Unable to load DLL 'api-ms-win-core-localization-l1-2-0.dll': The specified module could not be found.
(Exception from HRESULT: 0x8007007E)
at Interop.mincore.FormatMessage(Int32 dwFlags, IntPtr lpSource_mustBeNull, UInt32 dwMessageId, Int32 dwLanguageId, StringBuilder lpBuffer, Int32 nSize, IntPtr[] arguments)
at Interop.mincore.TryGetErrorMessage(Int32 errorCode, StringBuilder sb, String& errorMsg)
at Interop.mincore.GetMessage(Int32 errorCode)
at System.Diagnostics.Process.ResolvePath(String filename)
at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
at Microsoft.DotNet.Cli.Utils.Command.Execute()
at Microsoft.DotNet.Tools.Test.Program.RunConsole(ProjectContext projectContext, CommandLineApplication app, String testRunner)
at Microsoft.DotNet.Tools.Test.Program.<>c__DisplayClass0_0.<Main>b__0()

如有任何帮助,我们将不胜感激。

最佳答案

遗憾的是,我在 google-fu 和挖掘 dotnet 代码(以及通过 github 发布的问题)后找到了原因。

底线:该功能尚未实现,并且存在一个不同的错误(显然已经修复但不在当前发行版中),每当尝试从无法找到的路径运行程序时,它会尝试 pInvoke 到 Windows DLL 中.

在这里亲自查看:https://github.com/dotnet/cli/issues/407 (阅读@piotrpMSFT 的最后几篇文章)

最后发现:

dotnet test

将尝试运行命令“dotnet-test-”如果 project.json 中未指定“testRunner”。但是,如果 project.json 包含这样的 testRunner:

{
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": false
},

"testRunner": "xunit",

"dependencies": {
"Microsoft.NETCore.Runtime": "1.0.1-beta-*",
},

"frameworks": {
"dnxcore50": { }
}
}

然后它将尝试运行程序 dotnet-test-xunit(因为“testRunner”已设置为“xunit”)并将项目 DLL 作为参数传递。

来吧 Microsoft 伙计们,帮助我,这样我就可以开始编写带有测试的 C# NuGet 包。

关于.net - 为什么 "dotnet test"在 ubuntu LTS 14.04 上失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34737821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com