使用 xUnit 测试 .Net 核心库
Testing .Net Core Library with xUnit
我正在创建一个可以被 ASP.NET Core
应用程序使用的 .Net Core Library
。默认情况下 Visual Studio 创建 project.json 如下
{
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
},
"version": "1.0.0-*"
}
我认为建议将 netstandard1.x
用于将被其他应用程序使用的库。我要删除 "imports": "dnxcore50"
因为那是针对旧的 .NET Core 预览版(在 .NET Core 1.0 RTM 和 .NET Core RC2 发布之前)
现在我想使用 xunit
对这个库进行单元测试,所以按照文章 Getting started with xUnit.net (.NET Core / ASP.NET Core)
但是 xunit 建议将库标记为 .Net Core Application
You may have noticed that part of what we did here was mark your class
library as a .NET Core Application (the netcoreapp1.0 framework). When
using .NET CLI for testing, unit test projects are actually an
application*, not a class library. If you forget to make this change,
the compiler will tell you that dotnet-test-xunit is not compatible
with your class library project. We tell Visual Studio to generate a
class library, though, because it most closely matches our desired
project structure.
- The application's Main function is provided by the xUnit.net runner, not by you.
所以我按照建议更新了 project.josn,并且能够 运行 单元测试。但是我有问题:
1> 当其他应用程序可以使用该库时,是否建议将 .Net Core 库的目标框架从 netstandard1.6
更改为 netcoreapp1.0
?
您将有一个项目(和 project.json)专用于您的测试项目。
您需要将测试项目标记为 .NET Core 应用程序,因为它实际上会被执行。
无需将作为您的库的目标项目更改为核心应用程序。
在这里你可以看到 project.json for a test project
这里是 library project
我正在创建一个可以被 ASP.NET Core
应用程序使用的 .Net Core Library
。默认情况下 Visual Studio 创建 project.json 如下
{
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
},
"version": "1.0.0-*"
}
我认为建议将 netstandard1.x
用于将被其他应用程序使用的库。我要删除 "imports": "dnxcore50"
因为那是针对旧的 .NET Core 预览版(在 .NET Core 1.0 RTM 和 .NET Core RC2 发布之前)
现在我想使用 xunit
对这个库进行单元测试,所以按照文章 Getting started with xUnit.net (.NET Core / ASP.NET Core)
但是 xunit 建议将库标记为 .Net Core Application
You may have noticed that part of what we did here was mark your class library as a .NET Core Application (the netcoreapp1.0 framework). When using .NET CLI for testing, unit test projects are actually an application*, not a class library. If you forget to make this change, the compiler will tell you that dotnet-test-xunit is not compatible with your class library project. We tell Visual Studio to generate a class library, though, because it most closely matches our desired project structure.
- The application's Main function is provided by the xUnit.net runner, not by you.
所以我按照建议更新了 project.josn,并且能够 运行 单元测试。但是我有问题:
1> 当其他应用程序可以使用该库时,是否建议将 .Net Core 库的目标框架从 netstandard1.6
更改为 netcoreapp1.0
?
您将有一个项目(和 project.json)专用于您的测试项目。
您需要将测试项目标记为 .NET Core 应用程序,因为它实际上会被执行。 无需将作为您的库的目标项目更改为核心应用程序。
在这里你可以看到 project.json for a test project
这里是 library project