【问题标题】:Is it possible to install DotNet core CLI for dotnet core runtime?是否可以为 dotnet core 运行时安装 DotNet core CLI?
【发布时间】:2020-02-07 11:35:17
【问题描述】:

我想在 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/ 上看不到任何有用的信息。 另外,下页https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-test?tabs=netcore21关于dotnet test命令的这条消息““这篇文章适用于:✔️.NET Core 1.x SDK✔️.NET Core 2.x SDK””暗示了dotnet test命令只能在Dotnet中访问开发工具包。

提前感谢您的时间。

【问题讨论】:

    标签: c# docker .net-core sdk runtime


    【解决方案1】:

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

    下面blog对我帮助很大,基本上都是一样的解决方案。

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

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

    dotnet 功能测试.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 添加到您的项目中。

      类程序 { 公共静态 int Main(string[] args) { 返回新的 AutoRun().Execute(args); } }

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

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

    dotnet FunctionalTest.dll

    【讨论】:

      猜你喜欢
      • 2018-01-07
      • 1970-01-01
      • 2019-01-29
      • 2019-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-21
      • 2019-03-15
      相关资源
      最近更新 更多