我正在为一个使用DocumentDB(CosmosDB)作为存储的dotnet core应用编写xUnit单元测试用例。这些单元测试被编写为针对本地cosmos db模拟器执行。在Azure DevOps构建环境中,我设置了Azure Cosmos DB CI/CD任务,该任务内部创建一个容器以安装模拟器。但是,我无法弄清楚模拟器的端点如何传递给xUnit fixture。
是否有任何方法可以通过xUnit fixture读取.runsettings测试参数或通过其他来源传递参数?
更新
目前,我使用环境变量实现了这种情况,但仍然不希望使用powershell在构建任务中将连接字符串定义为环境变量,并在单元测试执行期间通过代码读取它。我在想是否还有另一种实现方式。
以及读取值的代码:
var serviceEndpoint = Environment.GetEnvironmentVariable("CosmosDbEmulatorEndpointEnvironmentVariable");
由于UnitTest任务提供了使用.runsettings/.testsettings选项的功能,并提供覆盖测试运行参数的选项,所以我认为可以使用这些选项来实现这个目的。