我需要参考哪些包来创建我自己的 NUnit 控制台运行器?
Which Packages do I need to refer to to create my own NUnit console runner?
我正在尝试创建自己的 NUnit 控制台运行器。
向我的项目添加对 NUnit
的引用不允许我访问 NUnit.Common
、NUnit.Engine
或 NUnit.Options
,如在
https://github.com/nunit/nunit-console/blob/master/src/NUnitConsole/nunit3-console/Program.cs
我的项目文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NUnit" Version="3.11.0" />
</ItemGroup>
</Project>
我的来源:
using System;
using NUnit.Common;
using NUnit.Options;
using NUnit.Engine;
namespace MyNUnitRunner
{
class Program
{
static ConsoleOptions Options = new ConsoleOptions(new DefaultOptionsProvider(), new FileSystem());
private static ExtendedTextWriter _outWriter;
static void Main(string[] args)
{
try
{
Options.Parse(Options.PreParse(args));
}
catch (OptionException ex)
{
WriteHeader();
OutWriter.WriteLine(ColorStyle.Error, string.Format(ex.Message, ex.OptionName));
return ConsoleRunner.INVALID_ARG;
}
}
}
}
dotnet build
的输出:
Program.cs(2,13): error CS0234: The type or namespace name 'Common' does not exist in the namespace 'NUnit' (are you missing an assembly reference?) [/Users/jon/DEV/CSSandbox/MyNUnitRunner/MyNUnitRunner.csproj]
Program.cs(3,13): error CS0234: The type or namespace name 'Options' does not exist in the namespace 'NUnit' (are you missing an assembly reference?) [/Users/jon/DEV/CSSandbox/MyNUnitRunner/MyNUnitRunner.csproj]
Program.cs(4,13): error CS0234: The type or namespace name 'Engine' does not exist in the namespace 'NUnit' (are you missing an assembly reference?) [/Users/jon/DEV/CSSandbox/MyNUnitRunner/MyNUnitRunner.csproj]
Program.cs(11,16): error CS0246: The type or namespace name 'ConsoleOptions' could not be found (are you missing a using directive or an assembly reference?) [/Users/jon/DEV/CSSandbox/MyNUnitRunner/MyNUnitRunner.csproj]
Program.cs(12,24): error CS0246: The type or namespace name 'ExtendedTextWriter' could not be found (are you missing a using directive or an assembly reference?) [/Users/jon/DEV/CSSandbox/MyNUnitRunner/MyNUnitRunner.csproj]
0 Warning(s)
5 Error(s)
我需要参考哪些包以及如何找到它(C# 新手)?
查看您附加的 GitHub 来源中的项目文件。他们引用了 nunit.engine.api
项目,因此您也应该添加它。 NUnit.Engine.Api是这个引用的Nuget包
您正在寻找 NUnit 引擎 - 这是项目的一部分,旨在供外部 'runner' 程序用于 运行 测试。
您应该引入 nunit.engine
NuGet 包。您的 运行 用户应该参考的唯一程序集应该是 nunit.engine.api.dll
- 这是受支持的接口,这意味着您的 运行 用户将继续使用未来版本的引擎。
这里有一些关于该过程的文档:https://github.com/nunit/docs/wiki/Test-Engine-API
您的 运行 用户应该 而不是 引用 NUnit
NuGet 包。该包包含测试框架,每个测试程序集都应引用它,但 运行 人员不应该引用它。
希望对您有所帮助 - 祝您好运!
我正在尝试创建自己的 NUnit 控制台运行器。
向我的项目添加对 NUnit
的引用不允许我访问 NUnit.Common
、NUnit.Engine
或 NUnit.Options
,如在
https://github.com/nunit/nunit-console/blob/master/src/NUnitConsole/nunit3-console/Program.cs
我的项目文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NUnit" Version="3.11.0" />
</ItemGroup>
</Project>
我的来源:
using System;
using NUnit.Common;
using NUnit.Options;
using NUnit.Engine;
namespace MyNUnitRunner
{
class Program
{
static ConsoleOptions Options = new ConsoleOptions(new DefaultOptionsProvider(), new FileSystem());
private static ExtendedTextWriter _outWriter;
static void Main(string[] args)
{
try
{
Options.Parse(Options.PreParse(args));
}
catch (OptionException ex)
{
WriteHeader();
OutWriter.WriteLine(ColorStyle.Error, string.Format(ex.Message, ex.OptionName));
return ConsoleRunner.INVALID_ARG;
}
}
}
}
dotnet build
的输出:
Program.cs(2,13): error CS0234: The type or namespace name 'Common' does not exist in the namespace 'NUnit' (are you missing an assembly reference?) [/Users/jon/DEV/CSSandbox/MyNUnitRunner/MyNUnitRunner.csproj]
Program.cs(3,13): error CS0234: The type or namespace name 'Options' does not exist in the namespace 'NUnit' (are you missing an assembly reference?) [/Users/jon/DEV/CSSandbox/MyNUnitRunner/MyNUnitRunner.csproj]
Program.cs(4,13): error CS0234: The type or namespace name 'Engine' does not exist in the namespace 'NUnit' (are you missing an assembly reference?) [/Users/jon/DEV/CSSandbox/MyNUnitRunner/MyNUnitRunner.csproj]
Program.cs(11,16): error CS0246: The type or namespace name 'ConsoleOptions' could not be found (are you missing a using directive or an assembly reference?) [/Users/jon/DEV/CSSandbox/MyNUnitRunner/MyNUnitRunner.csproj]
Program.cs(12,24): error CS0246: The type or namespace name 'ExtendedTextWriter' could not be found (are you missing a using directive or an assembly reference?) [/Users/jon/DEV/CSSandbox/MyNUnitRunner/MyNUnitRunner.csproj]
0 Warning(s)
5 Error(s)
我需要参考哪些包以及如何找到它(C# 新手)?
查看您附加的 GitHub 来源中的项目文件。他们引用了 nunit.engine.api
项目,因此您也应该添加它。 NUnit.Engine.Api是这个引用的Nuget包
您正在寻找 NUnit 引擎 - 这是项目的一部分,旨在供外部 'runner' 程序用于 运行 测试。
您应该引入 nunit.engine
NuGet 包。您的 运行 用户应该参考的唯一程序集应该是 nunit.engine.api.dll
- 这是受支持的接口,这意味着您的 运行 用户将继续使用未来版本的引擎。
这里有一些关于该过程的文档:https://github.com/nunit/docs/wiki/Test-Engine-API
您的 运行 用户应该 而不是 引用 NUnit
NuGet 包。该包包含测试框架,每个测试程序集都应引用它,但 运行 人员不应该引用它。
希望对您有所帮助 - 祝您好运!