Skip to content

v3.14 fails with target framework net461 ... net48 on linux (ArgumentException: The net-4.6.1 framework is not available.), but v3.12 works well  #1130

@devizer

Description

@devizer

Intro: We need nunit-console to test NET Standard Libraries on mono-only platforms such as armv6, Raspberry PI zero, etc. v3.12 did it well, but the latest v3.14 fails.

For v3.14 the output on a Linux for net4.6.1 test assembly is:

NUnit Console Runner 3.14.0 (.NET 2.0)
Copyright (c) 2021 Charlie Poole, Rob Prouse
Thursday, February 10, 2022 3:33:32 PM

Runtime Environment
   OS Version: Linux 4.4.153.0
   Runtime: .NET Framework CLR v4.0.30319.42000

Test Files
    Universe.CpuUsage.Tests.dll


Errors, Failures and Warnings

1) Error :
System.ArgumentException : The net-4.6.1 framework is not available.
Available frameworks: mono-4.0
--ArgumentException
The net-4.6.1 framework is not available.
Available frameworks: mono-4.0
  at NUnit.Engine.Services.TestAgency.GetAgent (NUnit.Engine.TestPackage package) [0x0008e] in <78bad2d45f9a4bfe96b1d2028544fabf>:0
  at NUnit.Engine.Runners.ProcessRunner.CreateAgentAndRunnerIfNeeded () [0x0003d] in <78bad2d45f9a4bfe96b1d2028544fabf>:0
  at NUnit.Engine.Runners.ProcessRunner.RunTests (NUnit.Engine.ITestEventListener listener, NUnit.Engine.TestFilter filter) [0x0001f] in <78bad2d45f9a4bfe96b1d2028544fabf>:0

Test Run Summary
  Overall result: Failed
  Test Count: 0, Passed: 0, Failed: 0, Warnings: 0, Inconclusive: 0, Skipped: 0
  Start time: 2022-02-10 15:33:33Z
    End time: 2022-02-10 15:33:33Z
    Duration: 0.034 seconds

Results (nunit3) saved as TestResult.xml

v3.12 works well.
How to reproduce:

NETFW=net461
work=$HOME/transient-builds/src
mkdir -p $work && cd $work
echo "git clone|pull"
test ! -d Universe.CpuUsage && git clone https://github.com/devizer/Universe.CpuUsage || true
cd Universe.CpuUsage
git reset --hard; git pull
echo "Reset target framework to [$NETFW]"
Reset-Target-Framework --framework $NETFW --language latest
echo "Restore Dependencies"
cd Universe.CpuUsage.Tests
msbuild /t:Restore -v:m
echo "Build Release for Universe.CpuUsage.Tests"
msbuild /t:Build /p:Configuration=Release -v:m
cd bin/Release/$NETFW
echo "Run Integration Tests"
nunit3-console --workers=1 Universe.CpuUsage.Tests.dll
echo "Successfully completed"

nunit3-console is a shell-link:
mono /...path...to...nuget..package/packages/NUnit.ConsoleRunner/tools/nunit3-console.exe "$@"
mono and msbuild: the latest from official Xamarin repo, 6.12.0.122
OS Ubuntu 18.04 LTS (actually Linux version doesn't matter)

Below just references how to simplify reproduction step
Reset-Target-Framework scripts above resets Targetframwork[s] to specific version for csproj-files. here is it: https://github.com/devizer/test-and-build/blob/master/lab/permanent-scripts/Reset-Target-Framework.sh

v3.12 can be installed via snapshot.gz using shared script:
https://github.com/devizer/glist/blob/master/bin/net-test-runners.sh

The latest version of nunit-console can be installed via nuget using another shared script
https://github.com/devizer/test-and-build/blob/master/lab/NET-TEST-RUNNERS-build.sh
As of now, it installs v3.14

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions