В настоящее время я делаю несколько тестов с C# (используя Mono и NUnit, все на OS X, но он должен работать на Travis позже). Я не устанавливал Visual Studio и удалось получить «рабочий» .csproj файл:Nunit-console - что ожидается в файле .csproj?
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Compile">
<Target Name="Compile">
<Csc Sources="@(Compile)" References="@(Reference)" TargetType="Library" />
</Target>
<Target Name="Test" DependsOnTargets="Compile">
<Exec Command="nunit-console nunit.csproj" />
</Target>
<ItemGroup>
<Reference Include="nunit.framework.dll" />
</ItemGroup>
<ItemGroup>
<Compile Include="../csharp/class/CoffeeMachine.cs" />
<Compile Include="tests/Actionwords.cs" />
<Compile Include="tests/ProjectTest.cs" />
</ItemGroup>
</Project>
компиляции работает нормально, но я не могу выполнить тесты, я получаю следующее сообщение об ошибке:
╰─$ nunit-console nunit.csproj
NUnit version 2.4.8
Copyright (C) 2002-2007 Charlie Poole.
Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov.
Copyright (C) 2000-2002 Philip Craig.
All Rights Reserved.
Runtime Environment -
OS Version: Unix 14.3.0.0
CLR Version: 4.0.30319.17020 (4.2.0 (Stable 4.2.0.179/a224653 Tue Oct 6 11:27:49 PDT 2015))
Unhandled Exception:
System.ArgumentException: Invalid project file format: nunit.csproj ---> System.NullReferenceException: Object reference not set to an instance of an object
at NUnit.Util.VSProject.LoadMSBuildProject (System.String projectDirectory, System.Xml.XmlDocument doc) in /private/tmp/mono20151006-19632-tqpley/mono-4.2.0/mcs/nunit24/ClientUtilities/util/VSProject.cs:line 257
at NUnit.Util.VSProject.LoadProject (System.String projectDirectory, System.Xml.XmlDocument doc) in /private/tmp/mono20151006-19632-tqpley/mono-4.2.0/mcs/nunit24/ClientUtilities/util/VSProject.cs:line 210
at NUnit.Util.VSProject.Load() in /private/tmp/mono20151006-19632-tqpley/mono-4.2.0/mcs/nunit24/ClientUtilities/util/VSProject.cs:line 184
--- End of inner exception stack trace ---
at NUnit.Util.VSProject.ThrowInvalidFormat (System.String projectPath, System.Exception e) in /private/tmp/mono20151006-19632-tqpley/mono-4.2.0/mcs/nunit24/ClientUtilities/util/VSProject.cs:line 307
at NUnit.Util.VSProject.Load() in /private/tmp/mono20151006-19632-tqpley/mono-4.2.0/mcs/nunit24/ClientUtilities/util/VSProject.cs:line 197
at NUnit.Util.VSProject..ctor (System.String projectPath) in /private/tmp/mono20151006-19632-tqpley/mono-4.2.0/mcs/nunit24/ClientUtilities/util/VSProject.cs:line 56
at NUnit.Util.NUnitProject.FromVSProject (System.String vsProjectPath) in /private/tmp/mono20151006-19632-tqpley/mono-4.2.0/mcs/nunit24/ClientUtilities/util/NUnitProject.cs:line 234
at NUnit.Util.NUnitProject.LoadProject (System.String path) in /private/tmp/mono20151006-19632-tqpley/mono-4.2.0/mcs/nunit24/ClientUtilities/util/NUnitProject.cs:line 161
at NUnit.ConsoleRunner.ConsoleUi.MakeRunnerFromCommandLine (NUnit.ConsoleRunner.ConsoleOptions options) in /private/tmp/mono20151006-19632-tqpley/mono-4.2.0/mcs/nunit24/ConsoleRunner/nunit-console/ConsoleUi.cs:line 214
at NUnit.ConsoleRunner.ConsoleUi.Execute (NUnit.ConsoleRunner.ConsoleOptions options) in /private/tmp/mono20151006-19632-tqpley/mono-4.2.0/mcs/nunit24/ConsoleRunner/nunit-console/ConsoleUi.cs:line 58
at NUnit.ConsoleRunner.Runner.Main (System.String[] args) in /private/tmp/mono20151006-19632-tqpley/mono-4.2.0/mcs/nunit24/ConsoleRunner/nunit-console/Runner.cs:line 63
Примечание: если я выполняю nunit-console hiptest.publisher.samples.dll
, он работает как шарм.
Я предполагаю, что NUnit ожидает, что файл .csproj сообщит, что является тестовой целью. Я попытался добавить группу AssemblyName в PropertyGroup, но это не имело никакого значения.
И большой проблемой является то, что я не могу найти какой-либо документ о том, что ожидается от содержимого .csproj от Nunit (в основном я нахожу примеры, где все делается через VS или с помощью задач сообщества MSBuild, что звучит очень приятно, но по-видимому, не очень хорошо сочетается с моей средой (Mono, OS X и другой пакет NUnit, чем тот, который был выпущен с помощью Mono (не в этом проекте, а другой - с помощью Specflow, но если я могу исправить его для этого, он должен быть исправлен для второй один)).
Спасибо заранее, Винсент