You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by ni...@apache.org on 2022/11/01 20:56:24 UTC

[lucenenet] branch master updated: Removed .NET Core 3.1 tests and lucene-cli support for it. (#735)

This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git


The following commit(s) were added to refs/heads/master by this push:
     new ada899027 Removed .NET Core 3.1 tests and lucene-cli support for it.  (#735)
ada899027 is described below

commit ada89902720a14047bc105a40821144ee0f3fa42
Author: Ron Clabo <rc...@users.noreply.github.com>
AuthorDate: Tue Nov 1 16:56:17 2022 -0400

    Removed .NET Core 3.1 tests and lucene-cli support for it.  (#735)
    
    * Removed .NET Core 3.1 support.  .NET Core 3.1 will reach end of live in 45 days on Dec 13, 2022
    
    * Removed .NET Core 3.1 support from GitHub Actions
    
    * bumped min version for lucene-cli
    
    * TestTargetFramework.props: Removed extra ; delimiter
    
    * lucene-cli/docs/index.md: Changed .NET Core 5.0 to .NET 5.0
    
    * .github/workflows/Generate-TestWorkflows.ps1: Added special case to generate lucene-cli.nupkg for the installation test. Set the SYSTEM_DEFAULTWORKINGDIRECTORY environment variable so the test runner knows not to build the package.
    
    * .github/workflows/Generate-TestWorkflows.ps1: Enabled slow tests for lucene-cli
    
    * .github/workflows/Generate-TestWorkflows.ps1: Updated help docs
    
    * .github/workflows/Generate-TestWorkflows.ps1: Disable .NET SDK telemetry and logo
    
    * .build/dependencies.props: Bumped Microsoft.Extensions.Configuration from 3.1.0 to 3.1.6. Apparently lower versions had binding issues because of version mismatches.
    
    Co-authored-by: Shad Storhaug <sh...@shadstorhaug.com>
---
 .build/dependencies.props                          |  2 +-
 .build/runbuild.ps1                                |  1 +
 .github/workflows/Generate-TestWorkflows.ps1       | 70 +++++++++++++++-------
 .github/workflows/Lucene-Net-Tests-AllProjects.yml | 23 ++++---
 .../workflows/Lucene-Net-Tests-Analysis-Common.yml | 23 ++++---
 .../Lucene-Net-Tests-Analysis-Kuromoji.yml         | 23 ++++---
 .../Lucene-Net-Tests-Analysis-Morfologik.yml       | 23 ++++---
 .../Lucene-Net-Tests-Analysis-OpenNLP.yml          | 23 ++++---
 .../Lucene-Net-Tests-Analysis-Phonetic.yml         | 23 ++++---
 .../Lucene-Net-Tests-Analysis-SmartCn.yml          | 23 ++++---
 .../Lucene-Net-Tests-Analysis-Stempel.yml          | 23 ++++---
 .github/workflows/Lucene-Net-Tests-Benchmark.yml   | 23 ++++---
 .../workflows/Lucene-Net-Tests-Classification.yml  | 23 ++++---
 .github/workflows/Lucene-Net-Tests-Cli.yml         | 25 +++++---
 .../workflows/Lucene-Net-Tests-CodeAnalysis.yml    | 23 ++++---
 .github/workflows/Lucene-Net-Tests-Codecs.yml      | 23 ++++---
 .github/workflows/Lucene-Net-Tests-Demo.yml        | 23 ++++---
 .github/workflows/Lucene-Net-Tests-Expressions.yml | 23 ++++---
 .github/workflows/Lucene-Net-Tests-Facet.yml       | 23 ++++---
 .github/workflows/Lucene-Net-Tests-Grouping.yml    | 23 ++++---
 .github/workflows/Lucene-Net-Tests-Highlighter.yml | 23 ++++---
 .github/workflows/Lucene-Net-Tests-ICU.yml         | 23 ++++---
 .github/workflows/Lucene-Net-Tests-Join.yml        | 23 ++++---
 .github/workflows/Lucene-Net-Tests-Memory.yml      | 23 ++++---
 .github/workflows/Lucene-Net-Tests-Misc.yml        | 23 ++++---
 .github/workflows/Lucene-Net-Tests-Queries.yml     | 23 ++++---
 .github/workflows/Lucene-Net-Tests-QueryParser.yml | 23 ++++---
 .github/workflows/Lucene-Net-Tests-Replicator.yml  | 23 ++++---
 .github/workflows/Lucene-Net-Tests-Sandbox.yml     | 23 ++++---
 .github/workflows/Lucene-Net-Tests-Spatial.yml     | 23 ++++---
 .github/workflows/Lucene-Net-Tests-Suggest.yml     | 23 ++++---
 ...Net-Tests-TestFramework-DependencyInjection.yml | 23 ++++---
 .../workflows/Lucene-Net-Tests-TestFramework.yml   | 23 ++++---
 .github/workflows/Lucene-Net-Tests-_A-D.yml        | 23 ++++---
 .github/workflows/Lucene-Net-Tests-_E-I.yml        | 23 ++++---
 .github/workflows/Lucene-Net-Tests-_I-J.yml        | 23 ++++---
 .github/workflows/Lucene-Net-Tests-_J-S.yml        | 23 ++++---
 .github/workflows/Lucene-Net-Tests-_T-Z.yml        | 23 ++++---
 TestTargetFramework.props                          |  3 +-
 azure-pipelines.yml                                | 67 ---------------------
 .../Lucene.Net.Tests.Cli.csproj                    |  2 +-
 src/dotnet/tools/lucene-cli/docs/index.md          |  4 +-
 src/dotnet/tools/lucene-cli/lucene-cli.csproj      |  2 +-
 websites/apidocs/apiSpec/core/Lucene_Net_Codecs.md |  4 +-
 44 files changed, 584 insertions(+), 378 deletions(-)

diff --git a/.build/dependencies.props b/.build/dependencies.props
index 1cfb3fc69..f97e58774 100644
--- a/.build/dependencies.props
+++ b/.build/dependencies.props
@@ -48,7 +48,7 @@
     <MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion>$(MicrosoftCodeAnalysisCSharpPackageVersion)</MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion>
     <MicrosoftCodeAnalysisVisualBasicPackageVersion>2.6.1</MicrosoftCodeAnalysisVisualBasicPackageVersion>
     <MicrosoftCodeAnalysisVisualBasicWorkspacesPackageVersion>$(MicrosoftCodeAnalysisVisualBasicPackageVersion)</MicrosoftCodeAnalysisVisualBasicWorkspacesPackageVersion>
-    <MicrosoftExtensionsConfigurationPackageVersion>3.1.0</MicrosoftExtensionsConfigurationPackageVersion>
+    <MicrosoftExtensionsConfigurationPackageVersion>3.1.6</MicrosoftExtensionsConfigurationPackageVersion>
     <MicrosoftExtensionsConfigurationAbstractionsPackageVersion>$(MicrosoftExtensionsConfigurationPackageVersion)</MicrosoftExtensionsConfigurationAbstractionsPackageVersion>
     <MicrosoftExtensionsConfigurationCommandLinePackageVersion>$(MicrosoftExtensionsConfigurationPackageVersion)</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
     <MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>$(MicrosoftExtensionsConfigurationPackageVersion)</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
diff --git a/.build/runbuild.ps1 b/.build/runbuild.ps1
index e40ab60cd..b8c865c97 100644
--- a/.build/runbuild.ps1
+++ b/.build/runbuild.ps1
@@ -50,6 +50,7 @@ properties {
     [int]$maximumParallelJobs = 8
     
     #test parameters
+    #The build uses Lucene.Net.Tests.Analysis.Common to determine all of the targets for the solution:
     [string]$projectWithAllTestFrameworks = "$baseDirectory/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj"
     [string]$where = ""
 }
diff --git a/.github/workflows/Generate-TestWorkflows.ps1 b/.github/workflows/Generate-TestWorkflows.ps1
index 0ccc7977a..ab82874fe 100644
--- a/.github/workflows/Generate-TestWorkflows.ps1
+++ b/.github/workflows/Generate-TestWorkflows.ps1
@@ -51,14 +51,13 @@
  .PARAMETER Configurations
     A string array of build configurations to run the tests on. The default is @('Release').
 
+ .PARAMETER DotNet6SDKVersion
+    The SDK version of .NET 6.x to install on the build agent to be used for building and
+    testing. This SDK is always installed on the build agent. The default is 6.0.100.
+
  .PARAMETER DotNet5SDKVersion
     The SDK version of .NET 5.x to install on the build agent to be used for building and
     testing. This SDK is always installed on the build agent. The default is 5.0.400.
-
- .PARAMETER DotNetCore3SDKVersion
-    The SDK version of .NET Core 3.x to install on the build agent to be used for building and
-    testing. This SDK is only installed on the build agent when targeting .NET Core 3.x.
-    The default is 3.1.412.
 #>
 param(
     [string]$OutputDirectory =  $PSScriptRoot,
@@ -75,9 +74,7 @@ param(
 
     [string]$DotNet6SDKVersion = '6.0.100',
 
-    [string]$DotNet5SDKVersion = '5.0.400',
-
-    [string]$DotNetCore3SDKVersion = '3.1.412'
+    [string]$DotNet5SDKVersion = '5.0.400'
 )
 
 
@@ -158,8 +155,7 @@ function Write-TestWorkflow(
     [string[]]$TestPlatforms = @('x64'),
     [string[]]$OperatingSystems = @('windows-latest', 'ubuntu-latest', 'macos-latest'),
     [string]$DotNet6SDKVersion = $DotNet6SDKVersion,
-    [string]$DotNet5SDKVersion = $DotNet5SDKVersion,
-    [string]$DotNetCore3SDKVersion = $DotNetCore3SDKVersion) {
+    [string]$DotNet5SDKVersion = $DotNet5SDKVersion) {
 
     $dependencies = New-Object System.Collections.Generic.HashSet[string]
     Get-ProjectDependencies $ProjectPath $RelativeRoot $dependencies
@@ -173,6 +169,9 @@ function Write-TestWorkflow(
     $projectRelativeDirectory = ([System.IO.Path]::GetDirectoryName($projectRelativePath) -replace '\\', '/').TrimStart('./')
     $projectName = [System.IO.Path]::GetFileNameWithoutExtension($ProjectPath)
 
+    [bool]$isCLI = if ($projectName -eq "Lucene.Net.Tests.Cli") { $true } else { $false }       # Special case
+    $luceneCliProjectPath = $projectRelativePath -replace "Lucene.Net.Tests.Cli", "lucene-cli"  # Special case
+
     [string]$frameworks = '[' + $($TestFrameworks -join ', ') + ']'
     [string]$platforms = '[' + $($TestPlatforms -join ', ') + ']'
     [string]$oses = '[' + $($OperatingSystems -join ', ') + ']'
@@ -194,6 +193,8 @@ function Write-TestWorkflow(
         $directoryBuildPaths += "    - '$path'" + [System.Environment]::NewLine
     }
 
+    
+
     $fileText = "####################################################################################
 # DO NOT EDIT: This file was automatically generated by Generate-TestWorkflows.ps1
 ####################################################################################
@@ -249,18 +250,30 @@ jobs:
           - os: macos-latest
             framework: net461
     env:
-      project_path: '$projectRelativePath'
+      project_path: '$projectRelativePath'"
+
+    if ($isCLI) {
+        $fileText += "
+      project_under_test_path: '$luceneCliProjectPath'
+      run_slow_tests: 'true'"
+    } else {
+        $fileText += "
+      run_slow_tests: 'false'"
+    }
+
+    $fileText += "
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '$DotNetCore3SDKVersion'
-        if: `${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo `"DOTNET_NOLOGO=1`" | Out-File -FilePath  `$env:GITHUB_ENV -Encoding utf8 -Append
+          echo `"DOTNET_CLI_TELEMETRY_OPTOUT=1`" | Out-File -FilePath  `$env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -273,18 +286,31 @@ jobs:
         with:
           dotnet-version: '$DotNet6SDKVersion'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           `$project_name = [System.IO.Path]::GetFileNameWithoutExtension(`$env:project_path)
           `$test_results_artifact_name = `"testresults_`${{matrix.os}}_`${{matrix.framework}}_`${{matrix.platform}}_`${{matrix.configuration}}`"
+          `$working_directory = `"`$env:GITHUB_WORKSPACE`"
           Write-Host `"Project Name: `$project_name`"
           Write-Host `"Results Artifact Name: `$test_results_artifact_name`"
+          Write-Host `"Working Directory: `$working_directory`"
           echo `"project_name=`$project_name`" | Out-File -FilePath  `$env:GITHUB_ENV -Encoding utf8 -Append
           echo `"test_results_artifact_name=`$test_results_artifact_name`" | Out-File -FilePath  `$env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo `"SYSTEM_DEFAULTWORKINGDIRECTORY=`$working_directory`" | Out-File -FilePath  `$env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo `"title=Test Run for `$project_name - `${{matrix.framework}} - `${{matrix.platform}} - `${{matrix.os}}`" | Out-File -FilePath  `$env:GITHUB_ENV -Encoding utf8 -Append
-        shell: pwsh
+        shell: pwsh"
+
+    if ($isCLI) {
+        # Special case: Generate lucene-cli.nupkg for installation test so the test runner doesn't have to do it
+        $fileText += "
+      - run: dotnet pack `${{env.project_under_test_path}} --configuration `${{matrix.configuration}} /p:TestFrameworks=true /p:PortableDebugTypeOnly=true"
+    }
+
+    $fileText += "
       - run: dotnet build `${{env.project_path}} --configuration `${{matrix.configuration}} --framework `${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test `${{env.project_path}} --configuration `${{matrix.configuration}} --framework `${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:`"console;verbosity=normal`" --logger:`"trx;LogFileName=`${{env.trx_file_name}}`" --logger:`"liquid.md;LogFileName=`${{env.md_file_name}};Title=`${{env.title}};`" --results-directory:`"`${{github.workspace}}/`${{env.test_results_artifact_name}}/`${{env.project_ [...]
+      - run: dotnet test `${{env.project_path}} --configuration `${{matrix.configuration}} --framework `${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:`"console;verbosity=normal`" --logger:`"trx;LogFileName=`${{env.trx_file_name}}`" --logger:`"liquid.md;LogFileName=`${{env.md_file_name}};Title=`${{env.title}};`" --results-directory:`"`${{github.workspace}}/`${{env.test_results_artifact_name}}/`${{env.project_ [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
@@ -317,7 +343,7 @@ try {
     Pop-Location
 }
 
-#Write-TestWorkflow -OutputDirectory $OutputDirectory -ProjectPath $projectPath -RelativeRoot $repoRoot -TestFrameworks @('net5.0','netcoreapp3.1') -OperatingSystems $OperatingSystems -TestPlatforms $TestPlatforms -Configurations $Configurations -DotNet6SDKVersion $DotNet6SDKVersion -DotNet5SDKVersion $DotNet5SDKVersion -DotNetCore3SDKVersion $DotNetCore3SDKVersion
+#Write-TestWorkflow -OutputDirectory $OutputDirectory -ProjectPath $projectPath -RelativeRoot $repoRoot -TestFrameworks @('net5.0') -OperatingSystems $OperatingSystems -TestPlatforms $TestPlatforms -Configurations $Configurations -DotNet6SDKVersion $DotNet6SDKVersion -DotNet5SDKVersion $DotNet5SDKVersion
 
 #Write-Host $TestProjects
 
@@ -344,5 +370,5 @@ foreach ($testProject in $TestProjects) {
     Write-Host "Frameworks To Test for ${projectName}: $($frameworks -join ';')" -ForegroundColor Cyan
 
     #Write-Host "Project: $projectName"
-    Write-TestWorkflow -OutputDirectory $OutputDirectory -ProjectPath $testProject -RelativeRoot $RepoRoot -TestFrameworks $frameworks -OperatingSystems $OperatingSystems -TestPlatforms $TestPlatforms -Configurations $Configurations -DotNet6SDKVersion $DotNet6SDKVersion -DotNet5SDKVersion $DotNet5SDKVersion -DotNetCore3SDKVersion $DotNetCore3SDKVersion
+    Write-TestWorkflow -OutputDirectory $OutputDirectory -ProjectPath $testProject -RelativeRoot $RepoRoot -TestFrameworks $frameworks -OperatingSystems $OperatingSystems -TestPlatforms $TestPlatforms -Configurations $Configurations -DotNet6SDKVersion $DotNet6SDKVersion -DotNet5SDKVersion $DotNet5SDKVersion
 }
\ No newline at end of file
diff --git a/.github/workflows/Lucene-Net-Tests-AllProjects.yml b/.github/workflows/Lucene-Net-Tests-AllProjects.yml
index 853d9a02e..158455174 100644
--- a/.github/workflows/Lucene-Net-Tests-AllProjects.yml
+++ b/.github/workflows/Lucene-Net-Tests-AllProjects.yml
@@ -86,17 +86,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.AllProjects/Lucene.Net.Tests.AllProjects.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -109,18 +111,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Analysis-Common.yml b/.github/workflows/Lucene-Net-Tests-Analysis-Common.yml
index bd906e3e6..f0fcb1f1c 100644
--- a/.github/workflows/Lucene-Net-Tests-Analysis-Common.yml
+++ b/.github/workflows/Lucene-Net-Tests-Analysis-Common.yml
@@ -70,17 +70,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -93,18 +95,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Analysis-Kuromoji.yml b/.github/workflows/Lucene-Net-Tests-Analysis-Kuromoji.yml
index 35729a83d..c84450e6b 100644
--- a/.github/workflows/Lucene-Net-Tests-Analysis-Kuromoji.yml
+++ b/.github/workflows/Lucene-Net-Tests-Analysis-Kuromoji.yml
@@ -67,17 +67,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Analysis.Kuromoji/Lucene.Net.Tests.Analysis.Kuromoji.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -90,18 +92,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Analysis-Morfologik.yml b/.github/workflows/Lucene-Net-Tests-Analysis-Morfologik.yml
index f38467cfc..726048b05 100644
--- a/.github/workflows/Lucene-Net-Tests-Analysis-Morfologik.yml
+++ b/.github/workflows/Lucene-Net-Tests-Analysis-Morfologik.yml
@@ -67,17 +67,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Analysis.Morfologik/Lucene.Net.Tests.Analysis.Morfologik.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -90,18 +92,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Analysis-OpenNLP.yml b/.github/workflows/Lucene-Net-Tests-Analysis-OpenNLP.yml
index 703425d4e..6f4e8a77b 100644
--- a/.github/workflows/Lucene-Net-Tests-Analysis-OpenNLP.yml
+++ b/.github/workflows/Lucene-Net-Tests-Analysis-OpenNLP.yml
@@ -70,17 +70,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Analysis.OpenNLP/Lucene.Net.Tests.Analysis.OpenNLP.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -93,18 +95,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Analysis-Phonetic.yml b/.github/workflows/Lucene-Net-Tests-Analysis-Phonetic.yml
index 797410b00..e3b02f0d5 100644
--- a/.github/workflows/Lucene-Net-Tests-Analysis-Phonetic.yml
+++ b/.github/workflows/Lucene-Net-Tests-Analysis-Phonetic.yml
@@ -64,17 +64,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Analysis.Phonetic/Lucene.Net.Tests.Analysis.Phonetic.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -87,18 +89,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Analysis-SmartCn.yml b/.github/workflows/Lucene-Net-Tests-Analysis-SmartCn.yml
index b171f2982..a7750551d 100644
--- a/.github/workflows/Lucene-Net-Tests-Analysis-SmartCn.yml
+++ b/.github/workflows/Lucene-Net-Tests-Analysis-SmartCn.yml
@@ -68,17 +68,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Analysis.SmartCn/Lucene.Net.Tests.Analysis.SmartCn.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -91,18 +93,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Analysis-Stempel.yml b/.github/workflows/Lucene-Net-Tests-Analysis-Stempel.yml
index b7181ba6f..4d96106fe 100644
--- a/.github/workflows/Lucene-Net-Tests-Analysis-Stempel.yml
+++ b/.github/workflows/Lucene-Net-Tests-Analysis-Stempel.yml
@@ -65,17 +65,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Analysis.Stempel/Lucene.Net.Tests.Analysis.Stempel.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -88,18 +90,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Benchmark.yml b/.github/workflows/Lucene-Net-Tests-Benchmark.yml
index 6a1aedc7f..8cf8447f4 100644
--- a/.github/workflows/Lucene-Net-Tests-Benchmark.yml
+++ b/.github/workflows/Lucene-Net-Tests-Benchmark.yml
@@ -77,17 +77,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Benchmark/Lucene.Net.Tests.Benchmark.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -100,18 +102,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Classification.yml b/.github/workflows/Lucene-Net-Tests-Classification.yml
index eee3a619c..10e171f69 100644
--- a/.github/workflows/Lucene-Net-Tests-Classification.yml
+++ b/.github/workflows/Lucene-Net-Tests-Classification.yml
@@ -65,17 +65,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Classification/Lucene.Net.Tests.Classification.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -88,18 +90,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Cli.yml b/.github/workflows/Lucene-Net-Tests-Cli.yml
index c236acc1a..8c2af0c5b 100644
--- a/.github/workflows/Lucene-Net-Tests-Cli.yml
+++ b/.github/workflows/Lucene-Net-Tests-Cli.yml
@@ -84,17 +84,20 @@ jobs:
             framework: net461
     env:
       project_path: './src/dotnet/tools/Lucene.Net.Tests.Cli/Lucene.Net.Tests.Cli.csproj'
+      project_under_test_path: './src/dotnet/tools/lucene-cli/lucene-cli.csproj'
+      run_slow_tests: 'true'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -107,18 +110,24 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
+      - run: dotnet pack ${{env.project_under_test_path}} --configuration ${{matrix.configuration}} /p:TestFrameworks=true /p:PortableDebugTypeOnly=true
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-CodeAnalysis.yml b/.github/workflows/Lucene-Net-Tests-CodeAnalysis.yml
index 885bf32aa..259464bed 100644
--- a/.github/workflows/Lucene-Net-Tests-CodeAnalysis.yml
+++ b/.github/workflows/Lucene-Net-Tests-CodeAnalysis.yml
@@ -63,17 +63,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/dotnet/Lucene.Net.Tests.CodeAnalysis/Lucene.Net.Tests.CodeAnalysis.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -86,18 +88,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Codecs.yml b/.github/workflows/Lucene-Net-Tests-Codecs.yml
index 1c2d38e05..5ba1bc150 100644
--- a/.github/workflows/Lucene-Net-Tests-Codecs.yml
+++ b/.github/workflows/Lucene-Net-Tests-Codecs.yml
@@ -63,17 +63,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Codecs/Lucene.Net.Tests.Codecs.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -86,18 +88,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Demo.yml b/.github/workflows/Lucene-Net-Tests-Demo.yml
index 8a4eefb78..72b7f409d 100644
--- a/.github/workflows/Lucene-Net-Tests-Demo.yml
+++ b/.github/workflows/Lucene-Net-Tests-Demo.yml
@@ -72,17 +72,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Demo/Lucene.Net.Tests.Demo.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -95,18 +97,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Expressions.yml b/.github/workflows/Lucene-Net-Tests-Expressions.yml
index 99e092e1c..258222ad8 100644
--- a/.github/workflows/Lucene-Net-Tests-Expressions.yml
+++ b/.github/workflows/Lucene-Net-Tests-Expressions.yml
@@ -65,17 +65,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Expressions/Lucene.Net.Tests.Expressions.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -88,18 +90,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Facet.yml b/.github/workflows/Lucene-Net-Tests-Facet.yml
index 17495887c..96aa2172e 100644
--- a/.github/workflows/Lucene-Net-Tests-Facet.yml
+++ b/.github/workflows/Lucene-Net-Tests-Facet.yml
@@ -67,17 +67,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Facet/Lucene.Net.Tests.Facet.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -90,18 +92,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Grouping.yml b/.github/workflows/Lucene-Net-Tests-Grouping.yml
index 6af7be2bb..e1d9fd647 100644
--- a/.github/workflows/Lucene-Net-Tests-Grouping.yml
+++ b/.github/workflows/Lucene-Net-Tests-Grouping.yml
@@ -65,17 +65,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Grouping/Lucene.Net.Tests.Grouping.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -88,18 +90,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Highlighter.yml b/.github/workflows/Lucene-Net-Tests-Highlighter.yml
index fbcef428a..83c847fd9 100644
--- a/.github/workflows/Lucene-Net-Tests-Highlighter.yml
+++ b/.github/workflows/Lucene-Net-Tests-Highlighter.yml
@@ -67,17 +67,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Highlighter/Lucene.Net.Tests.Highlighter.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -90,18 +92,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-ICU.yml b/.github/workflows/Lucene-Net-Tests-ICU.yml
index 38da9e949..e8935c667 100644
--- a/.github/workflows/Lucene-Net-Tests-ICU.yml
+++ b/.github/workflows/Lucene-Net-Tests-ICU.yml
@@ -80,17 +80,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/dotnet/Lucene.Net.Tests.ICU/Lucene.Net.Tests.ICU.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -103,18 +105,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Join.yml b/.github/workflows/Lucene-Net-Tests-Join.yml
index 1842c1bcd..99f549da2 100644
--- a/.github/workflows/Lucene-Net-Tests-Join.yml
+++ b/.github/workflows/Lucene-Net-Tests-Join.yml
@@ -66,17 +66,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Join/Lucene.Net.Tests.Join.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -89,18 +91,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Memory.yml b/.github/workflows/Lucene-Net-Tests-Memory.yml
index 03561505b..a0af7cd8a 100644
--- a/.github/workflows/Lucene-Net-Tests-Memory.yml
+++ b/.github/workflows/Lucene-Net-Tests-Memory.yml
@@ -68,17 +68,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Memory/Lucene.Net.Tests.Memory.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -91,18 +93,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Misc.yml b/.github/workflows/Lucene-Net-Tests-Misc.yml
index 459f9f2e4..d72c08d24 100644
--- a/.github/workflows/Lucene-Net-Tests-Misc.yml
+++ b/.github/workflows/Lucene-Net-Tests-Misc.yml
@@ -64,17 +64,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Misc/Lucene.Net.Tests.Misc.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -87,18 +89,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Queries.yml b/.github/workflows/Lucene-Net-Tests-Queries.yml
index 484805d97..81033d4fd 100644
--- a/.github/workflows/Lucene-Net-Tests-Queries.yml
+++ b/.github/workflows/Lucene-Net-Tests-Queries.yml
@@ -64,17 +64,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Queries/Lucene.Net.Tests.Queries.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -87,18 +89,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-QueryParser.yml b/.github/workflows/Lucene-Net-Tests-QueryParser.yml
index ee108b149..8f906e85e 100644
--- a/.github/workflows/Lucene-Net-Tests-QueryParser.yml
+++ b/.github/workflows/Lucene-Net-Tests-QueryParser.yml
@@ -70,17 +70,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.QueryParser/Lucene.Net.Tests.QueryParser.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -93,18 +95,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Replicator.yml b/.github/workflows/Lucene-Net-Tests-Replicator.yml
index 45d894c5c..e30d33c3f 100644
--- a/.github/workflows/Lucene-Net-Tests-Replicator.yml
+++ b/.github/workflows/Lucene-Net-Tests-Replicator.yml
@@ -69,17 +69,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Replicator/Lucene.Net.Tests.Replicator.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -92,18 +94,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Sandbox.yml b/.github/workflows/Lucene-Net-Tests-Sandbox.yml
index b3abaeb0b..bbb06552b 100644
--- a/.github/workflows/Lucene-Net-Tests-Sandbox.yml
+++ b/.github/workflows/Lucene-Net-Tests-Sandbox.yml
@@ -65,17 +65,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Sandbox/Lucene.Net.Tests.Sandbox.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -88,18 +90,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Spatial.yml b/.github/workflows/Lucene-Net-Tests-Spatial.yml
index 5ffa3e153..8a23f3099 100644
--- a/.github/workflows/Lucene-Net-Tests-Spatial.yml
+++ b/.github/workflows/Lucene-Net-Tests-Spatial.yml
@@ -66,17 +66,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Spatial/Lucene.Net.Tests.Spatial.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -89,18 +91,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-Suggest.yml b/.github/workflows/Lucene-Net-Tests-Suggest.yml
index 0361e675e..19de69925 100644
--- a/.github/workflows/Lucene-Net-Tests-Suggest.yml
+++ b/.github/workflows/Lucene-Net-Tests-Suggest.yml
@@ -67,17 +67,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.Suggest/Lucene.Net.Tests.Suggest.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -90,18 +92,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-TestFramework-DependencyInjection.yml b/.github/workflows/Lucene-Net-Tests-TestFramework-DependencyInjection.yml
index 7a0ccd6d3..b8578d4e9 100644
--- a/.github/workflows/Lucene-Net-Tests-TestFramework-DependencyInjection.yml
+++ b/.github/workflows/Lucene-Net-Tests-TestFramework-DependencyInjection.yml
@@ -63,17 +63,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.TestFramework.DependencyInjection/Lucene.Net.Tests.TestFramework.DependencyInjection.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -86,18 +88,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-TestFramework.yml b/.github/workflows/Lucene-Net-Tests-TestFramework.yml
index 249880582..2ca385f43 100644
--- a/.github/workflows/Lucene-Net-Tests-TestFramework.yml
+++ b/.github/workflows/Lucene-Net-Tests-TestFramework.yml
@@ -65,17 +65,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests.TestFramework/Lucene.Net.Tests.TestFramework.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -88,18 +90,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-_A-D.yml b/.github/workflows/Lucene-Net-Tests-_A-D.yml
index 1ac7cd38c..bc14cd5c1 100644
--- a/.github/workflows/Lucene-Net-Tests-_A-D.yml
+++ b/.github/workflows/Lucene-Net-Tests-_A-D.yml
@@ -74,17 +74,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests._A-D/Lucene.Net.Tests._A-D.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -97,18 +99,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-_E-I.yml b/.github/workflows/Lucene-Net-Tests-_E-I.yml
index 04518500b..f58e238d8 100644
--- a/.github/workflows/Lucene-Net-Tests-_E-I.yml
+++ b/.github/workflows/Lucene-Net-Tests-_E-I.yml
@@ -84,17 +84,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests._E-I/Lucene.Net.Tests._E-I.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -107,18 +109,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-_I-J.yml b/.github/workflows/Lucene-Net-Tests-_I-J.yml
index 2ae5b8ee9..01110698e 100644
--- a/.github/workflows/Lucene-Net-Tests-_I-J.yml
+++ b/.github/workflows/Lucene-Net-Tests-_I-J.yml
@@ -89,17 +89,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests._I-J/Lucene.Net.Tests._I-J.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -112,18 +114,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-_J-S.yml b/.github/workflows/Lucene-Net-Tests-_J-S.yml
index 3b037b206..2ea4904c3 100644
--- a/.github/workflows/Lucene-Net-Tests-_J-S.yml
+++ b/.github/workflows/Lucene-Net-Tests-_J-S.yml
@@ -76,17 +76,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests._J-S/Lucene.Net.Tests._J-S.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -99,18 +101,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/.github/workflows/Lucene-Net-Tests-_T-Z.yml b/.github/workflows/Lucene-Net-Tests-_T-Z.yml
index 9282942ed..b33b0058e 100644
--- a/.github/workflows/Lucene-Net-Tests-_T-Z.yml
+++ b/.github/workflows/Lucene-Net-Tests-_T-Z.yml
@@ -71,17 +71,19 @@ jobs:
             framework: net461
     env:
       project_path: './src/Lucene.Net.Tests._T-Z/Lucene.Net.Tests._T-Z.csproj'
+      run_slow_tests: 'false'
       trx_file_name: 'TestResults.trx'
       md_file_name: 'TestResults.md' # Report file name for LiquidTestReports.Markdown
 
     steps:
-      - uses: actions/checkout@v2
+      - name: Checkout Source Code
+        uses: actions/checkout@v2
 
-      - name: Setup .NET 3.1 SDK
-        uses: actions/setup-dotnet@v1
-        with:
-          dotnet-version: '3.1.412'
-        if: ${{ startswith(matrix.framework, 'netcoreapp3.') }}
+      - name: Disable .NET SDK Telemetry and Logo
+        run: |
+          echo "DOTNET_NOLOGO=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+        shell: pwsh
 
       - name: Setup .NET 5 SDK
         uses: actions/setup-dotnet@v1
@@ -94,18 +96,23 @@ jobs:
         with:
           dotnet-version: '6.0.100'
 
-      - run: |
+      - name: Setup Environment Variables
+        run: |
           $project_name = [System.IO.Path]::GetFileNameWithoutExtension($env:project_path)
           $test_results_artifact_name = "testresults_${{matrix.os}}_${{matrix.framework}}_${{matrix.platform}}_${{matrix.configuration}}"
+          $working_directory = "$env:GITHUB_WORKSPACE"
           Write-Host "Project Name: $project_name"
           Write-Host "Results Artifact Name: $test_results_artifact_name"
+          Write-Host "Working Directory: $working_directory"
           echo "project_name=$project_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           echo "test_results_artifact_name=$test_results_artifact_name" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
+          # Set the Azure DevOps default working directory env variable, so our tests only need to deal with a single env variable
+          echo "SYSTEM_DEFAULTWORKINGDIRECTORY=$working_directory" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
           # Title for LiquidTestReports.Markdown
           echo "title=Test Run for $project_name - ${{matrix.framework}} - ${{matrix.platform}} - ${{matrix.os}}" | Out-File -FilePath  $env:GITHUB_ENV -Encoding utf8 -Append
         shell: pwsh
       - run: dotnet build ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} /p:TestFrameworks=true
-      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
+      - run: dotnet test ${{env.project_path}} --configuration ${{matrix.configuration}} --framework ${{matrix.framework}} --no-build --no-restore --blame-hang --blame-hang-dump-type mini --blame-hang-timeout 20minutes --logger:"console;verbosity=normal" --logger:"trx;LogFileName=${{env.trx_file_name}}" --logger:"liquid.md;LogFileName=${{env.md_file_name}};Title=${{env.title}};" --results-directory:"${{github.workspace}}/${{env.test_results_artifact_name}}/${{env.project_name}}" -- RunCo [...]
         shell: bash
       # upload reports as build artifacts
       - name: Upload a Build Artifact
diff --git a/TestTargetFramework.props b/TestTargetFramework.props
index fd7e23747..7f59aafb5 100644
--- a/TestTargetFramework.props
+++ b/TestTargetFramework.props
@@ -28,14 +28,13 @@
     this setting only affects the test projects. -->
     <!--<TargetFramework>net461</TargetFramework>-->
     <!--<TargetFramework>net48</TargetFramework>-->
-    <!--<TargetFramework>netcoreapp3.1</TargetFramework>-->
     <TargetFramework>net5.0</TargetFramework>
     <!--<TargetFramework>net6.0</TargetFramework>-->
 
     <!-- Allow the build script to pass in the test frameworks to build for.
       This overrides the above TargetFramework setting. 
       LUCENENET TODO: Due to a parsing bug, we cannot pass a string with a ; to dotnet msbuild, so passing true as a workaround -->
-    <TargetFrameworks Condition=" '$(TestFrameworks)' == 'true' ">net6.0;net5.0;netcoreapp3.1</TargetFrameworks>
+    <TargetFrameworks Condition=" '$(TestFrameworks)' == 'true' ">net6.0;net5.0</TargetFrameworks>
     <TargetFrameworks Condition=" '$(TestFrameworks)' == 'true' AND $([MSBuild]::IsOsPlatform('Windows')) ">$(TargetFrameworks);net48;net461</TargetFrameworks>
     <TargetFramework Condition=" '$(TargetFrameworks)' != '' "></TargetFramework>
   </PropertyGroup>
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index f10a75b42..3f3341dbf 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -243,13 +243,6 @@ stages:
         binaryArtifactName: '$(BinaryArtifactName)'
         testSettingsFilePath: '$(Build.ArtifactStagingDirectory)/$(TestSettingsFileName)'
 
-    - template: '.build/azure-templates/publish-test-binaries.yml'
-      parameters:
-        publishDirectory: $(PublishTempDirectory)
-        framework: 'netcoreapp3.1'
-        binaryArtifactName: '$(BinaryArtifactName)'
-        testSettingsFilePath: '$(Build.ArtifactStagingDirectory)/$(TestSettingsFileName)'
-
     - template: '.build/azure-templates/publish-test-binaries.yml'
       parameters:
         publishDirectory: $(PublishTempDirectory)
@@ -445,66 +438,6 @@ stages:
         maximumAllowedFailures: $(maximumAllowedFailures)
         dotNetSdkVersion: '$(DotNetSDKVersion)'
 
-  - job: Test_netcoreapp3_1_x64
-    condition: and(succeeded(), ne(variables['RunTests'], 'false'))
-    strategy:
-      matrix:
-        Windows:
-          osName: 'Windows'
-          imageName: 'windows-2019'
-          maximumParallelJobs: 8
-          maximumAllowedFailures: 0 # Maximum allowed failures for a successful build
-        Linux:
-          osName: 'Linux'
-          imageName: 'ubuntu-latest'
-          maximumParallelJobs: 7
-          maximumAllowedFailures: 0 # Maximum allowed failures for a successful build
-        macOS:
-          osName: 'macOS'
-          imageName: 'macOS-latest'
-          maximumParallelJobs: 7
-          maximumAllowedFailures: 0 # Maximum allowed failures for a successful build
-    displayName: 'Test netcoreapp3.1,x64 on'
-    pool:
-      vmImage: $(imageName)
-    steps:
-    - template: '.build/azure-templates/run-tests-on-os.yml'
-      parameters:
-        osName: $(osName)
-        framework: 'netcoreapp3.1'
-        vsTestPlatform: 'x64'
-        testBinariesArtifactName: '$(TestBinariesArtifactName)'
-        nugetArtifactName: '$(NuGetArtifactName)'
-        testResultsArtifactName: '$(TestResultsArtifactName)'
-        maximumParallelJobs: $(maximumParallelJobs)
-        maximumAllowedFailures: $(maximumAllowedFailures)
-        dotNetSdkVersion: '$(DotNetSDKVersion)'
-
-  - job: Test_netcoreapp3_1_x86 # Only run Nightly or if explicitly enabled with RunX86Tests
-    condition: and(succeeded(), ne(variables['RunTests'], 'false'), or(eq(variables['IsNightly'], 'true'), eq(variables['RunX86Tests'], 'true')))
-    strategy:
-      matrix:
-        Windows:
-          osName: 'Windows'
-          imageName: 'windows-2019'
-          maximumParallelJobs: 8
-          maximumAllowedFailures: 0 # Maximum allowed failures for a successful build
-    displayName: 'Test netcoreapp3.1,x86 on'
-    pool:
-      vmImage: $(imageName)
-    steps:
-    - template: '.build/azure-templates/run-tests-on-os.yml'
-      parameters:
-        osName: $(osName)
-        framework: 'netcoreapp3.1'
-        vsTestPlatform: 'x86'
-        testBinariesArtifactName: '$(TestBinariesArtifactName)'
-        nugetArtifactName: '$(NuGetArtifactName)'
-        testResultsArtifactName: '$(TestResultsArtifactName)'
-        maximumParallelJobs: $(maximumParallelJobs)
-        maximumAllowedFailures: $(maximumAllowedFailures)
-        dotNetSdkVersion: '$(DotNetSDKVersion)'
-
   - job: Test_net461_x64
     condition: and(succeeded(), ne(variables['RunTests'], 'false'))
     strategy:
diff --git a/src/dotnet/tools/Lucene.Net.Tests.Cli/Lucene.Net.Tests.Cli.csproj b/src/dotnet/tools/Lucene.Net.Tests.Cli/Lucene.Net.Tests.Cli.csproj
index f4940daa8..00f269642 100644
--- a/src/dotnet/tools/Lucene.Net.Tests.Cli/Lucene.Net.Tests.Cli.csproj
+++ b/src/dotnet/tools/Lucene.Net.Tests.Cli/Lucene.Net.Tests.Cli.csproj
@@ -25,7 +25,7 @@
 
   <PropertyGroup>
     <!-- Allow specific target framework to flow in from TestTargetFrameworks.props -->
-    <TargetFrameworks Condition=" '$(TargetFramework)' == '' ">net6.0;net5.0;netcoreapp3.1</TargetFrameworks>
+    <TargetFrameworks Condition=" '$(TargetFramework)' == '' ">net6.0;net5.0</TargetFrameworks>
     <!-- If .NET Frameowrk is specified, just target the latest version -->
     <TargetFramework Condition=" $(TargetFramework.StartsWith('net4')) ">net6.0</TargetFramework>
     <AssemblyTitle>Lucene.Net.Tests.Cli</AssemblyTitle>
diff --git a/src/dotnet/tools/lucene-cli/docs/index.md b/src/dotnet/tools/lucene-cli/docs/index.md
index 78a902e5f..1c83bc76f 100644
--- a/src/dotnet/tools/lucene-cli/docs/index.md
+++ b/src/dotnet/tools/lucene-cli/docs/index.md
@@ -1,10 +1,10 @@
-# Lucene.NET command line interface (CLI) tools
+# Lucene.NET command line interface (CLI) tools
 
 The Lucene.NET command line interface (CLI) is a new cross-platform toolchain with utilities for maintaining Lucene.NET and demos for learning basic Lucene.NET functionality.
 
 ## Prerequisites
 
-- [.NET Core 3.1 Runtime or Higher](https://dotnet.microsoft.com/en-us/download/dotnet)
+- [.NET 5.0 Runtime or Higher](https://dotnet.microsoft.com/en-us/download/dotnet)
 
 ## Installation
 
diff --git a/src/dotnet/tools/lucene-cli/lucene-cli.csproj b/src/dotnet/tools/lucene-cli/lucene-cli.csproj
index aa3117f77..6caebf627 100644
--- a/src/dotnet/tools/lucene-cli/lucene-cli.csproj
+++ b/src/dotnet/tools/lucene-cli/lucene-cli.csproj
@@ -24,7 +24,7 @@
   <Import Project="$(SolutionDir).build/nuget.props" />
 
   <PropertyGroup>
-    <TargetFrameworks>net6.0;net5.0;netcoreapp3.1</TargetFrameworks>
+    <TargetFrameworks>net6.0;net5.0</TargetFrameworks>
 
     <IsPublishable>true</IsPublishable>
     <IsPublishable Condition="$(TargetFramework.StartsWith('net4'))">false</IsPublishable>
diff --git a/websites/apidocs/apiSpec/core/Lucene_Net_Codecs.md b/websites/apidocs/apiSpec/core/Lucene_Net_Codecs.md
index 479cc33ad..af71940e1 100644
--- a/websites/apidocs/apiSpec/core/Lucene_Net_Codecs.md
+++ b/websites/apidocs/apiSpec/core/Lucene_Net_Codecs.md
@@ -1,4 +1,4 @@
----
+---
 uid: Lucene.Net.Codecs
 summary: *content
 ---
@@ -178,7 +178,7 @@ The <xref:Lucene.Net.TestFramework> library contains specialized classes to mini
 > See [Unit testing C# with NUnit and .NET Core](https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-nunit) for detailed instructions on how to set up a class library to use with NUnit.
 
 > [!NOTE]
-> .NET Standard is not an executable target. Tests will not run unless you target a framework such as `netcoreapp3.1` or `net48`.
+> .NET Standard is not an executable target. Tests will not run unless you target a framework such as `net6.0` or `net48`.
 
 Here is an example project file for .NET 5 for testing a project named `MyCodecs.csproj`.