如何读取 xUnit 夹具中的 .runsettings 测试参数

How to read .runsettings test parameter in xUnit fixture

我正在为使用 DocumentDB (CosmosDB)dotnet core 的应用程序编写 xUnit 单元测试用例作为存储。编写单元测试以针对 local cosmos db 模拟器 执行。在 Azure DevOps 构建环境中,我设置了 Azure Cosmos DB CI/CD task,它在内部创建了一个容器来安装模拟器。但是,我无法弄清楚如何将模拟器的端点传递给 xUnit fixture?

xUnit fixture 是否可以通过任何方式读取 .运行settings 测试参数或可以通过其他来源传递参数?

更新

目前,我使用环境变量实现了场景,但仍然不乐意在构建任务中使用 powershell 将连接字符串定义为环境变量,并在单元测试执行期间通过代码读取它。我在想是否可以有另一种实现它的方法..

下面的快照显示了构建任务当前是如何配置的,作为实现所需的解决方法:

以及读取值的代码

var serviceEndpoint = Environment.GetEnvironmentVariable("CosmosDbEmulatorEndpointEnvironmentVariable");

因为,UnitTest 任务提供了传递 .运行settings/.testsettings 的选项,并带有覆盖测试 运行 参数的选项,所以我认为使用这些选项可以实现一些东西。

目前,我使用环境变量实现了场景,但仍然不乐意在构建任务中使用 powershell 将连接字符串定义为环境变量,并在单元测试执行期间通过代码读取它。我在想是否可以有另一种实现它的方法..

下面的快照显示了构建任务当前是如何配置的,作为实现所需的解决方法:

以及读取值的代码

var serviceEndpoint = Environment.GetEnvironmentVariable("CosmosDbEmulatorEndpointEnvironmentVariable");

因为,UnitTest 任务提供了传递 .运行settings/.testsettings 的选项,并带有覆盖测试 运行 参数的选项,所以我认为使用这些选项可以实现一些东西。

这在 xUnit 中不受支持。

查看 SO 答案 here and here, and this github issue 表明 xUnit 不支持它。