如何在xUnit固定装置中读取.runsettings测试参数

时间:2019-03-04 06:12:12

标签: xunit runsettings

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

xUnit固定装置是否可以通过任何方式读取.runsettings测试参数,或者可以通过其他来源传递参数?

更新

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

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

然后将代码读取为

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

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

2 个答案:

答案 0 :(得分:1)

xUnit不支持此功能。

请参见herehere的答案,以及this github issue表示xUnit不支持该功能。

答案 1 :(得分:0)

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

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

然后将代码读取为

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

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