【问题标题】:How to retrieve data from appsettings.json, when execute Nunit test in bitbucket pipeline在 bitbucket 管道中执行 Nunit 测试时如何从 appsettings.json 中检索数据
【发布时间】:2021-02-08 12:14:52
【问题描述】:

我有一个用于 API 测试的自动化测试框架,其结构如下:

在 appsettings.json 文件中,我存储了用于测试的所有数据:

我在 ConfigManager 类的帮助下从 appsettings.json 检索数据:

当我在本地机器上执行测试时,一切正常,但是当我尝试在 bitbucket 管道中执行它时,我得到 NullReferenceException(当尝试使用变量形式的 ConfigManager(例如 BaseUrl)时)。这是我的 .yaml 文件:

如果需要的数据是硬编码的: 测试在管道运行中通过。因此,我认为问题恰恰在于从json文件中提取数据的正确性。

我的问题:我的代码有什么问题吗?我应该在 yaml 文件中添加任何内容以便能够从 appsettings.json 获取数据吗? 任何帮助都会很有价值。

【问题讨论】:

  • 如何在本地执行测试?
  • 您能否检查appsettings.json 是否已版本化并出现在 CI 的构建结果中?
  • 由于依赖于当前目录,所以在CI下运行时,添加一个测试检查文件是否存在于当前目录中。
  • @Vernou - 我在本地使用 Visual Studio 运行(测试资源管理器 - 运行)
  • @Charlie - 我添加了简单的测试 ' [Test] public void CheckFile() { var info = new DirectoryInfo(Directory.GetCurrentDirectory()); info.GetFiles("appsettings.json").Should().HaveCount(1); }' 它在 CI 上传递

标签: c# json automated-tests nunit bitbucket-pipelines


【解决方案1】:

问题解决了。在我的 TAF 的“核心”部分中,我使用了错误的 json 文件路径来设置“FlurlHttp.GlobalSettings.Timeout”值。我没有使用 ConfigManager 类,而是使用了新配置,这就是找不到超时值的原因。我更新了我的 ConfigManager 现在一切都在 bitbucket CI 中运行良好

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    • 2020-07-31
    相关资源
    最近更新 更多