nunit3-console 无效:.csproj 文件类型不受支持

nunit3-console Invalid: .csproj File type is not supported

我有一个 Windows Server 2019 作为 Jenkins 的构建节点。 Windows 框没有 GUI,只有进入 PowerShell Core 的 SSH 访问。该盒子已使用 Ansible 配置,所有软件均使用 Chocolatey 安装。

- name: Install multiple packages
  win_chocolatey:
    name:
      - 7zip
      - ghostscript
      - imagemagick
      - jfrog-cli
      - maven
      - mingw
      - nodejs
      - nuget.commandline
      - nunit-console-runner
      - nunit-extension-nunit-project-loader
      - openjdk11
      - openjdk8
      - powershell-core
      - visualstudio2017buildtools
      - zip
    state: present

这是nunit3-console.exe --list-extensions的输出:

PS C:\Users\ansible> nunit3-console.exe --list-extensions        
NUnit Console Runner 3.12.0 (.NET 2.0)
Copyright (c) 2021 Charlie Poole, Rob Prouse
Monday, March 15, 2021 10:02:26 AM

Runtime Environment
   OS Version: Microsoft Windows NT 6.2.9200.0
   Runtime: .NET Framework CLR v4.0.30319.42000

Installed Extensions
  Extension Point: /NUnit/Engine/NUnitV2Driver
  Extension Point: /NUnit/Engine/TypeExtensions/IService
  Extension Point: /NUnit/Engine/TypeExtensions/ITestEventListener
  Extension Point: /NUnit/Engine/TypeExtensions/IDriverFactory
  Extension Point: /NUnit/Engine/TypeExtensions/IProjectLoader
    Extension: NUnit.Engine.Services.ProjectLoaders.NUnitProjectLoader(.NET 2.0)
      Version: 3.6.0.0
      Path: C:\ProgramData\chocolatey\lib\nunit-extension-nunit-project-loader\tools\nunit-project-loader.dll
      FileExtension: .nunit
  Extension Point: /NUnit/Engine/TypeExtensions/IResultWriter

当运行 nunit3-console时,我得到一个错误不支持文件类型:

jenkins@EC2AMAZ-90KNPC6 C:\Users\jenkins\workspace\FOO>"C:\ProgramData\chocolatey\lib\nunit-console-runner\tools\nunit3-console.exe" FOO.csproj --config=Release --test=SpecFlow.GeneratedTests --result=CucumberTestResult.xml 
NUnit Console Runner 3.12.0 (.NET 2.0)
Copyright (c) 2021 Charlie Poole, Rob Prouse
Friday, March 12, 2021 10:16:35 AM

Runtime Environment
   OS Version: Microsoft Windows NT 6.2.9200.0
   Runtime: .NET Framework CLR v4.0.30319.42000

Test Files
    FOO.csproj

Test Filters
    Test: SpecFlow.GeneratedTests

 > C:\Program Files\Git\bin\git.exe rev-parse "HEAD^{commit}" # timeout=10

Errors, Failures and Warnings

1) Invalid : C:\Users\jenkins\workspace\FOO\FOO.csproj
File type is not supported

Test Run Summary
  Overall result: Failed
  Test Count: 0, Passed: 0, Failed: 0, Warnings: 0, Inconclusive: 0, Skipped: 0
  Start time: 2021-03-12 10:16:35Z
    End time: 2021-03-12 10:16:35Z
    Duration: 0.328 seconds

Results (nunit3) saved as CucumberTestResult.xml

ERROR: script returned exit code -4

已经尝试过:

原来nunit-extension-nunit-project-loader没有安装。

安装前:

PS C:\Users\ansible> nunit3-console.exe --list-extensions
NUnit Console Runner 3.10.0 (.NET 2.0)
Copyright (c) 2019 Charlie Poole, Rob Prouse
Monday, March 15, 2021 9:05:00 AM

Runtime Environment
   OS Version: Microsoft Windows NT 10.0.17763.0
  CLR Version: 4.0.30319.42000

Installed Extensions
  Extension Point: /NUnit/Engine/NUnitV2Driver
  Extension Point: /NUnit/Engine/TypeExtensions/IService
  Extension Point: /NUnit/Engine/TypeExtensions/ITestEventListener
  Extension Point: /NUnit/Engine/TypeExtensions/IDriverFactory
  Extension Point: /NUnit/Engine/TypeExtensions/IProjectLoader
  Extension Point: /NUnit/Engine/TypeExtensions/IResultWriter

安装后:

PS C:\Users\ansible> nunit3-console.exe --list-extensions        
NUnit Console Runner 3.12.0 (.NET 2.0)
Copyright (c) 2021 Charlie Poole, Rob Prouse
Monday, March 15, 2021 10:02:26 AM

Runtime Environment
   OS Version: Microsoft Windows NT 6.2.9200.0
   Runtime: .NET Framework CLR v4.0.30319.42000

Installed Extensions
  Extension Point: /NUnit/Engine/NUnitV2Driver
  Extension Point: /NUnit/Engine/TypeExtensions/IService
  Extension Point: /NUnit/Engine/TypeExtensions/ITestEventListener
  Extension Point: /NUnit/Engine/TypeExtensions/IDriverFactory
  Extension Point: /NUnit/Engine/TypeExtensions/IProjectLoader
    Extension: NUnit.Engine.Services.ProjectLoaders.NUnitProjectLoader(.NET 2.0)
      Version: 3.6.0.0
      Path: C:\ProgramData\chocolatey\lib\nunit-extension-nunit-project-loader\tools\nunit-project-loader.dll
      FileExtension: .nunit
  Extension Point: /NUnit/Engine/TypeExtensions/IResultWriter

同样的错误不支持文件类型前后。

该加载程序加载 nunit 项目。你想要 VSProjectLoader.

安装

choco install nunit-extension-vs-project-loader

或将 nunit-extension-vs-project-loader 添加到 win_chocolatey Ansible 模块安装的软件包列表中。

安装后:

PS C:\Users\ansible> nunit3-console.exe --list-extensions
NUnit Console Runner 3.12.0 (.NET 2.0)
Copyright (c) 2021 Charlie Poole, Rob Prouse
Monday, March 15, 2021 12:30:17 PM

Runtime Environment
   OS Version: Microsoft Windows NT 6.2.9200.0
   Runtime: .NET Framework CLR v4.0.30319.42000

Installed Extensions
  Extension Point: /NUnit/Engine/NUnitV2Driver
  Extension Point: /NUnit/Engine/TypeExtensions/IService
  Extension Point: /NUnit/Engine/TypeExtensions/ITestEventListener
  Extension Point: /NUnit/Engine/TypeExtensions/IDriverFactory
  Extension Point: /NUnit/Engine/TypeExtensions/IProjectLoader
    Extension: NUnit.Engine.Services.ProjectLoaders.NUnitProjectLoader(.NET 2.0)
      Version: 3.6.0.0
      Path: C:\ProgramData\chocolatey\lib\nunit-extension-nunit-project-loader\tools\nunit-project-loader.dll
      FileExtension: .nunit
    Extension: NUnit.Engine.Services.ProjectLoaders.VisualStudioProjectLoader(.NET 2.0)
      Version: 3.8.0.0
      Path: C:\ProgramData\chocolatey\lib\nunit-extension-vs-project-loader\tools\vs-project-loader.dll
      FileExtension: .sln .csproj .vbproj .vjsproj .vcproj .fsproj
  Extension Point: /NUnit/Engine/TypeExtensions/IResultWriter