运行设置:XUnit 测试

4
dotnet test文档页面指出,可以将参数作为一对传递给单元测试。

RunSettings参数

将参数作为RunSettings配置传递给测试。 在“-”之后的[name]=[value] 对中指定参数(注意“-”后面的空格)。空格用于分隔多个[name]=[value] 对。

我正在使用Xunit - 我该如何在我的测试代码中读取这些键/值对?

1
似乎xUnit不支持此功能 https://github.com/xunit/xunit/issues/636 只有VSTest运行器具有这种可能性,您可以尝试使用它们的json配置https://xunit.github.io/docs/configuring-with-json - Pavel Anikhouski
1个回答

1
我已经通过使用Environment类直接显式读取命令行参数来解决了这个问题(注:在撰写本文时尚不完整)。
public class Parameters
{
    public static string GetCommandLineArg(params string[] args)
        => Environment.GetCommandLineArgs().SkipWhile(x => !args.Contains(x, StringComparer.InvariantCultureIgnoreCase)).Skip(1).FirstOrDefault();

    public static string ResultsDirectory => GetCommandLineArg("-r", "--result-directory");
    public static string Logger => GetCommandLineArg("-l", "--logger");
}

我也遇到了同样的问题。现在已经过去几个月了,你最终是怎么解决的?有没有更多的代码可以分享,以便下一个遇到这个问题的人可以更快地解决?你会再次这样做还是转而使用Nunit? - Matt Lengenfelder
当在测试资源管理器中选择.runsettings文件时,这个解决方案是否有效? - Matt Lengenfelder
只是在寻找这样的东西,为什么不读取一个“runsettings.json”文件,以获得相同的行为呢? - Tomer W
@MattLengenfelder 我没有在浏览器中运行它,所以我还没有尝试过。 - Matt W
1
@TomerW 我相信最终我做到了,但一开始做这件事时遇到了问题。我现在忘记了具体是什么问题,但我想我当时非常努力地尝试从命令行配置,以避免编写 JSON 文件。 - Matt W

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接