如何在xUnit fixture中读取.runsettings测试参数

问题描述 投票:2回答:2

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

xUnit fixture可以通过哪种方式读取.runsettings测试参数或参数可以通过其他来源传递吗?

更新

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

下面的快照显示了构建任务当前如何配置为解决方法以实现所需的:enter image description here

并将代码读取为值

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

因为,UnitTest任务提供了传递.runsettings / .testsettings选项以覆盖测试运行参数的选项,因此我们认为可以使用这些选项实现某些功能。

xunit runsettings
2个回答
3
投票

xUnit不支持此功能。

请参阅SO答案herehere,以及this github issue,表明它不是xUnit中支持的内容。


1
投票

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

下面的快照显示了构建任务当前如何配置为解决方法以实现所需的:enter image description here

并将代码读取为值

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

因为,UnitTest任务提供了传递.runsettings / .testsettings选项以覆盖测试运行参数的选项,因此我们认为可以使用这些选项实现某些功能。

© www.soinside.com 2019 - 2024. All rights reserved.