azure-pipelines - 运行使用来自 Visual Studio 和 Azure DevOps 的应用设置的 XUnit 集成测试
问题描述
我有一个集成测试 .NET 5 XUnit 项目。我正在使用 XUnit 2.4 和 XUnit.Runner.VisualStudio 2.4。本项目中的集成测试需要一个配置值,即 ApiUrl。我想以两种方式运行集成测试:
- 从 Visual Studio 使用 All Test Run 或 ReSharper
- 从 Azure DevOps 的管道并从管道变量传递 ApiUrl,这将覆盖项目设置中的一个
我的问题:
- 如何以我的测试代码以透明方式访问 ApiUrl 的方式进行配置(它不关心它从哪里运行)?
- 如何将变量 ApiUrl 传递给我的集成测试项目,我将
DotNetCoreCLI@2
测试任务用作我的管道步骤。
解决方案
可以通过 将环境变量添加到您的任务中,env:
然后您可以在代码中读取这些变量:
- task: DotNetCoreCLI@2
inputs:
command: test
projects: "tests/**/*Tests.csproj"
env:
ApiUrl: $(PipelineVariable)
在您的 C# 代码中:
var apiUrl = Environment.GetEnvironmentVariable("ApiUrl") ?? "http://example.com";
推荐阅读
- c++ - 如何在 lldb 上设置 std::string 类型?
- reactjs - 只更新redux中嵌套数据的顶层会导致什么问题?
- google-colaboratory - 通过 Google Colab 下载的数据在哪里?
- python - Django 在第二个模型中只使用 Model1 的一列作为外键
- javascript - 动态循环检查复选框并获取它们的值和 isChecked
- c# - 具有只读哈希集的对象在对象初始化时分配值
- excel - 以编程方式在 Excel 工作表中查找突出显示的数据
- c# - 在数字签名的 SignDetached 期间无法访问关闭的流错误
- r - 从数据框中的 ggplot() 返回数据作为原始输入数据
- jquery - 从 json 中删除元素,而不添加 null