Breaking Changes - nunit/nunit-console GitHub Wiki

Console Runner Changes

  • Change Runner Executable Name - DONE

    The runner will be called nunit-console.exe, replacing nunit3-console.exe. See issue 1149.

  • Platform Support - DONE

    The .NET Core 3.1 build of the runner will be replaced by a .NET 6.0 build.

  • Eliminate --process and --inprocess Options - DONE

    Each test assembly will run in a separate process until we create an in-process agent as we plan to do at a later stage of development. See issue 861.

  • Eliminate --domain Option - DONE

    The user will no longer directly control how the runner makes use of AppDomains internally. See issue 860.

  • Remove Deprecated --labels Options - DONE

    See issue 891.

  • Remove Deprecated --params Option

    Waiting for review. See issue 888.

  • Rename --timeout Option - DONE

    Changed to --testCaseTimeout. See issue 890.

  • Change Behavior of SkipNonTestAssemblies Setting

    Exactly how this will be changed requires some investigation. See issue 827.

Engine Changes

  • Platform Support - DONE

    The .NET Core 3.1 build of the engine will be replaced by a .NET 6.0 build.

  • Remove RecentFilesService - DONE

    This is not used by the runner and is outside the scope of what a test runner needs to do. See issue 874.

  • Remove UserSettings Service - DONE

    No longer used by the runner and also out of scope. See issue 873.

  • Eliminate In-Process Execution and ProcessModel Settings- DONE

    This impacts the command-line options as well as the package settings. Each test assembly will run in a separate process until we create an in-process agent as we plan to do at a later stage of development. See issue 861.

  • Eliminate DomainUsage Settings - DONE

    This impacts the command-line options as well as the package settings. The user will no longer directly control how the runner makes use of AppDomains internally. See issue 860.

  • Stop Bundling Certain Extensions - DONE

    We currently bundle five extensions with our msi and zip packages:

    • NUnit Project Loader
    • VS Project Loader
    • V2 Framework Driver
    • V2 Result Writer
    • TeamCity Extension

    We will continue to bundle only the two project loaders and will drop the other three. See issues 880, 879 and 878.

  • TestFilterBuilder Builds Invalid XML

    Requires investigation. See issue 491.

API Changes

Individual changes will be made over the course of 4.0 development and noted here. For now, see issues 885, 886, 887 and 919.

  • Eliminate TestPackage String Constructor - DONE

    The existence of two constructors with different semantics has been a long-time problem. This will eliminate it. Users should only create top-level anonymous TestPackages, representing the commandline. Nested constructors for individual files will be created internally where needed. This is a change to the engine API. See issue 889.

  • Existing Extensions Will No Longer Work - DONE

    Any engine extension that wants to support the 4.0 engine will need to be updated to use the new API. Extensions using the new API will not run under pre-4.0 versions of the engine.