繁体   English   中英

是否可以为 dotnet 核心运行时安装 DotNet 核心 CLI?

[英]Is it possible to install DotNet core CLI for dotnet core runtime?

我想在 docker 容器中运行功能测试。
Dotnet 核心运行时没有安装Dotnet CLI ,这意味着我无法调用命令 ' dotnet tests'
我想使用Dotnet 核心运行时映像,因为它更小,差异几乎是 1GB。

请注意,我在构建测试 dll 时没有问题,我之前在不同的映像中进行构建,然后将所有测试 DLL 文件放入运行时映像。 我只想运行那些测试 dll。

问题是:

  1. 是否可以为 .Net 运行时安装 Dotnet Cli? 我知道应该有 API 和 DLL 以及假设支持 cli 命令的类。 但也许有一种方法可以将 CLI 的某些部分包含在所需的 dll 中。

  2. 有没有办法配置 .net 核心运行时以包含额外的类/dll(运行单元/功能测试所需?(我的功能测试是用 Nunit 编写的,这就是我提到单元测试的原因)

我在 MS 网站https://docs.microsoft.com/en-us/dotnet/core/run-time-config/上看不到任何有用的东西。 此外,此消息““本文适用于:✔️ .NET Core 1.x SDK ✔️ .NET Core 2.x SDK””在以下页面https://docs.microsoft.com/en-us/dotnet/core /tools/dotnet-test?tabs=netcore21 about dotnet test 命令意味着 dotnet test 命令只能在 Dotnet SDK 中访问。

提前感谢您的时间。

虽然我还没有找到原始问题的答案并且我仍然对答案感兴趣,但我找到了一个关于如何摆脱 SDK 并在 .net 核心运行时运行功能测试单元测试的变通解决方案。

以下博客对我帮助很大,基本上是相同的解决方案。

在 .net 运行时运行单元测试的步骤:

计划,我们需要做的
1、我们需要摆脱对.net CLI(依赖SDK)的依赖。
2. 为了做到这一点,我们将我们的项目单元测试项目转换为控制台应用程序,允许以以下方式在运行时运行测试。
3. 使 Nunit 兼容命令行运行。

dotnet FunctionalTest.dll。

如何实现:
1. 打开您的 UnitTests.csproj 文件或 FuncTests.csproj 文件。 将以下属性添加到属性组。

<GenerateProgramFile> false </GenerateProgramFile>

因此,您生成的 *.csproj 文件可能如下所示:

<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
     <TargetFramework>netcoreapp2.0</TargetFramework>
     <IsPackable>false</IsPackable>
     <GenerateProgramFile>false</GenerateProgramFile>
   </PropertyGroup>

   <ItemGroup>
     <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
     <PackageReference Include="Nunit" Version="*" />
   </ItemGroup>
</Project>
  1. 将 main 方法和 Progam.cs 添加到您的项目中。

    class Program { public static int Main(string[] args) { return new AutoRun().Execute(args); } }

  2. 在 Visual Studio 中打开 NuGet 管理工具并安装 NUnitLite 包。
    https://www.nuget.org/packages/NUnitLite/

现在您可以使用以下命令在 .net 运行时运行您的功能测试:

dotnet FunctionalTest.dll

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM