Visual Studio 2017中NUnit3.13.3.runsettings测试结果路径配置问题
解决方案
不需要调整原有TRX输出的相关配置,只需修正NUnit XML输出的路径配置,让两个路径最终指向同一个解决方案根下的TestResults文件夹即可。
NUnit的<TestOutputXml>配置项支持识别Visual Studio内置的$(SolutionDir)宏,该宏会在测试运行时自动解析为当前.sln文件所在的绝对路径,不需要手动计算相对路径的回溯层级,适配所有项目结构。
配置说明
<RunConfiguration>节点下的<ResultsDirectory>保留原有.\TestResults配置即可,该路径默认以解决方案目录为基准解析,TRX格式测试结果会直接输出到该目录。<NUnit>节点下的<TestOutputXml>将原有相对路径替换为$(SolutionDir)\TestResults,即可让NUnit输出的XML格式结果和TRX文件落到同一目录。- 如果你使用的NUnit测试适配器版本较老、无法识别
$(SolutionDir)宏,可手动计算相对路径:NUnit默认工作目录为测试项目的bin输出目录(通常为测试项目文件夹/bin/Debug或测试项目文件夹/bin/Release),常规单测试项目放在解决方案一级子目录的结构下,从bin目录回溯3级即可到达解决方案根,此时路径填写..\..\..\TestResults即可。
完整可用配置
<?xml version="1.0" encoding="utf-8"?> <RunSettings> <RunConfiguration> <ResultsDirectory>.\TestResults</ResultsDirectory> </RunConfiguration> <LoggerRunSettings> <Loggers> <Logger friendlyName="trx" enabled="True"> <Configuration> <LogFileName>TestResults.trx</LogFileName> </Configuration> </Logger> </Loggers> </LoggerRunSettings> <NUnit> <TestOutputXml>$(SolutionDir)\TestResults</TestOutputXml> </NUnit> </RunSettings>
配置生效前请先删除之前分散在解决方案目录、bin目录下的两个TestResults文件夹,重启Visual Studio后再执行测试,避免旧文件缓存导致路径异常。
内容的提问来源于stack exchange,提问作者Ken
相关产品推荐
相关产品推荐

