Search Issue Tracker

By Design

Votes

0

Found in [Package]

2.0.0-preview

Issue ID

RIDER-39

Regression

Yes

Unit tests fail on System.TypeInitializationException when using the Standalone NUnit Launcher in JetBrains Rider

Package: Rider

-

How to reproduce:
1. Open the “DllTest_UnityMoq2021.3.29f1.zip“ project
2. Go to Preferences->External Tools->External Script Editor and set it to Rider 2022.3.3
3. Open JetBrains Rider and open the project
4. Open the Unit Tests tab (Alt + 8)
5. Select the Standalone NUnit Launcher option.
6. Run the Unit Tests

Expected result: Tests are successful
Actual result: Tests failed

Reproducible with: 2.0.0-pre.2 (2021.3.32f1, 2023.2.0b16, 2023.3.0a12)
Not reproducible with: 1.0.0 (2022.3.12f1, 2023.1.19f1)

Reproducible on: Windows 10, Windows 11
Not reproducible on: No other environment tested

Error: System.TypeInitializationException : The type initializer for 'Moq.Async.AwaitableFactory' threw an exception.

  1. Resolution Note:

    The solution was to set up the nuget.castle-core package. In this case, nuget.moq was setup correctly, so in the included test project, Tests.asmdef looks like this:

    {
    ...
    "precompiledReferences": [
    "Moq.dll",
    "nunit.framework.dll",
    "System.Runtime.CompilerServices.Unsafe.dll",
    "System.Threading.Tasks.Extensions.dll"
    ],
    ...
    }

    But nuget.moq depends on nuget.castle-core, which also needs to be set up (https://docs.unity3d.com/Packages/nuget.castle-core@2.0/manual/index.html#setup).

    So the Tests.asmdef should look like:

    {
    ...
    "precompiledReferences": [
    "Castle.Core.dll",
    "System.Diagnostics.EventLog.dll",
    "Moq.dll",
    "nunit.framework.dll",
    "System.Runtime.CompilerServices.Unsafe.dll",
    "System.Threading.Tasks.Extensions.dll"
    ],
    ...
    }

    With those changes (already documented), there should no longer be a problem.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.