2016-01-12 3 views
1

Может ли кто-нибудь помочь мне разобраться, как настроить модульные тесты с помощью «dotnet» в ubuntu? Теперь, когда dnx и dnu были заменены dotnet, я столкнулся с проблемами.Почему «dotnet test» терпит неудачу на ubuntu LTS 14.04?

У меня есть 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() 

Любая помощь будет принята с благодарностью.

ответ

1

К сожалению, я нашел причину после некоторого google-fu и прокопал через dotnet-код (и выдает через github).

Итог: эта функция еще не реализована, и есть другая ошибка (видимо, уже исправлена, но не в текущем дистрибутиве), которая пытается pInvoke в Windows DLL при попытке запустить программу из пути, который не может быть найденный.

Смотрите сами здесь: https://github.com/dotnet/cli/issues/407 (прочитать последние несколько записей по @piotrpMSFT)

В конце концов выясняется, что:

dotnet test 

будет пытаться запустить команду «Dotnet-Test- «если« testRunner »не указан в project.json. Однако, если 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 dudes, помогите мне, чтобы я мог начать писать пакеты C# NuGet с помощью тестов.

Смежные вопросы