NUnit 不使用 .runsettings 文件中的参数和设置

Tyl*_*sen 7 nunit visual-studio nunit-3.0

我试图将现有的 Selenium 解决方案切换为使用 NUnit,因为它支持同一类中的测试并行化。我遇到的问题是它似乎没有使用选定的.runsettings文件,尽管NUnit 支持它。我的意思是TestContext.Parameters.Count它始终为 0,并且它不会将结果存储在<ResultDirectory>我的 .runsettings 文件节点中指定的路径中。

我查看了文档和对AdapterSettings的引用(它具有解析 .runsettings 文件的逻辑),但我无法弄清楚为什么我TestContext.Paramaters在使用.runsettings文件时从未在我的测试中填充过。

我创建了一个简单的测试解决方案作为健全性检查和 POC,但它仍然没有填充。

我有
- NUnit 3.7.1
- NUnit3TestAdapter 3.7.0
-VisualStudio Professional 2017

我的 .runsettings 文件是:

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<!-- Parameters used by tests at runtime -->
  <TestRunParameters>
    <Parameter name ="testParameter1" value="value1" />
    <Parameter name ="testParameter2" value="value2" />
  </TestRunParameters>
</RunSettings>
Run Code Online (Sandbox Code Playgroud)

我在测试中尝试做的所有事情:

using System;
using NUnit.Framework;

namespace ClassLibrary1
{
    [TestFixture]
    public class UnitTestClass1
    {
        [Test]
        [Parallelizable(ParallelScope.All)]
        public void Class1TestMethod1()
        {
            // Below always returns 0
            Console.WriteLine(TestContext.Parameters.Count);

            // Below returns null
            Console.WriteLine(TestContext.Parameters["testParameter1"]);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我真的可以使用其他一些关于如何排除故障的建议。我们通过内置的 Visual Studio 单元测试工具(以及 vstest.console.exe)为我们的测试套件广泛使用 .runsettings 文件,所以我非常有信心我正在正确使用它。

更新:
我将实际测试解决方案中对Visual Studios 测试属性的所有引用替换为使用 NUnits 属性。现在我正在获取参数!但是,这让我仍然感到困惑,为什么它在我的其他基本解决方案中不起作用(带有上面显示的文件)。

显然我真的只关心我的真实解决方案,但我仍然想了解为什么它在我的虚拟解决方案中不起作用。

另外 - 我仍然不确定在哪里可以找到TestResultDirectoryNUnit 中的路径。