dotnet 测试:如何将程序集名称包含到 .trx 结果文件中?

Posted

技术标签:

【中文标题】dotnet 测试:如何将程序集名称包含到 .trx 结果文件中?【英文标题】:dotnet test: how to include assembly name into the .trx result files? 【发布时间】:2019-06-18 16:04:12 【问题描述】:

我正在 TFS 服务器上运行一个构建版本的测试解决方案。我正在使用命令生成 .trx 文件

dotnet test --logger:trx;

关于整个解决方案,其中包括多个测试项目。但是,默认的 .trx 文件名不包含对它们链接到的测试项目的显式引用,我需要它来进行自动报告。它们连接用户、机器、日期和时间,就是这样。

我知道我可以使用 LogFileName=FullPath 在命令行中指定完整路径和名称,但这不是动态的,因为您必须指定名称并且仅适用于每个项目级别而不适用于完整解决方案(其中这是有道理的,因为您不能对多个测试结果文件使用相同的路径和名称)。

有没有办法通过命令行和/或我的 TFS 构建定义(可能带有变量)将项目名称动态地放入 trx 文件中?我还没有找到任何相关的信息。

提前致谢!

【问题讨论】:

【参考方案1】:

可以通过run the tests via a cake script 来完成此操作。

foreach (var project in GetFiles($"../Tests/*/*.csproj"))

    var projectName = project.GetFilenameWithoutExtension();
    var dotNetTestSettings = new DotNetCoreTestSettings
    
        Logger = $"trx;LogFileName=projectName.trx",
        ResultsDirectory = "./TestResults",
    ;
    DotNetCoreTest(project.FullPath, dotNetTestSettings);

【讨论】:

以上是关于dotnet 测试:如何将程序集名称包含到 .trx 结果文件中?的主要内容,如果未能解决你的问题,请参考以下文章

dotnet pack 项目参考

dotnet核心2.1程序集如何知道是否进行调试?

DotNet Benchmark 引发引用的程序集错误

dotnet 使用 Refasmer 从现有的 DLL 里面导出公开的成员组装出新的仅作为引用用途的程序集...

将其他依赖程序集发布到 azure 应用服务

“程序集相同的简单名称已被导入”错误