【问题标题】:What is the attribute in Xunit that's similar to TestContext in Visual studio tests?Xunit 中与 Visual Studio 测试中的 TestContext 类似的属性是什么?
【发布时间】:2021-11-16 06:27:49
【问题描述】:

我们正在从 Visual Studio 测试迁移到 xunit。在 VStests 中,我们可以使用 TestContext 访问运行时测试参数。我希望在运行时使用 msbuild 从命令行提供的测试中设置一个全局变量。有人可以帮助找出 xunit 中等效的 TestContext 吗?

【问题讨论】:

  • 99% 确定这不是 xUnit 拥有或想要的设施 - 通过 env vars 传递(或将嵌入式资源添加到程序集并在静态时读取测试体)
  • @RubenBartelink:感谢您通过使用 env vars 得出的输入...
  • 嗨,Swathi,您能告诉我您是如何使用 Env 变量的吗?由于我是 C# 新手,如果您能提供一个示例,那就太好了。

标签: c# xunit xunit.net


【解决方案1】:

There is no TestContext in XUnit.

在运行测试时,我找不到处理环境参数的规范方法,因此我依赖 JSON 文件。例如:

{
  "Browser": "Chrome",
  "BasePath": "localhost:4200",
  "BaseApiPath": "http://localhost:50204/"
} 

C#代码:

string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "environment.json");
string json = File.ReadAllText(path);
Configuration = JsonConvert.DeserializeObject<TestingConfiguration>(json);

【讨论】:

    【解决方案2】:

    但肯定有类似TestContext的东西,叫做ITestOutputHelper:

    using Xunit;
    using Xunit.Abstractions;
    
    public class MyTestClass
    {
        private readonly ITestOutputHelper output;
    
        public MyTestClass(ITestOutputHelper output)
        {
            this.output = output;
        }
    
        [Fact]
        public void MyTest()
        {
            var temp = "my class!";
            output.WriteLine("This is output from {0}", temp);
        }
    }
    

    发件人:https://xunit.net/docs/capturing-output

    【讨论】:

      猜你喜欢
      • 2011-05-14
      • 1970-01-01
      • 1970-01-01
      • 2019-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-23
      相关资源
      最近更新 更多