JetBrains Rider运行单元测试无法读取app.config的appSettings问题
该问题的核心原因如下:
- 工作目录默认配置不同:JetBrains Rider运行XUnit单元测试时,默认工作目录设置为解决方案根目录,而非单元测试项目的生成输出目录。你放在测试项目中的
app.config在编译后会被重命名为[你的测试项目名称].dll.config,存放在测试项目的bin\Debug\net5.0(对应你的构建配置)输出路径下。Rider默认不会从输出目录加载配置文件,因此ConfigurationManager找不到对应配置,返回空集合。而Visual Studio的测试运行器默认将工作目录指定为测试项目的输出目录,可正常匹配到生成后的配置文件。 - 配置文件探测逻辑差异:.NET 5 中依赖
System.Configuration.ConfigurationManager包加载配置时,默认会查找与当前入口程序集同名的.config后缀文件。部分版本的Rider测试运行器启动测试时,会将测试宿主进程自身作为入口程序集进行配置探测,而非你的实际测试项目程序集,因此无法匹配到你在项目中定义的app.config内容。
临时修复方案
如果需要快速解决该问题,可以在Rider的测试配置中修改工作目录:
- 打开Rider的
运行/调试配置窗口,找到对应XUnit测试配置 - 将
工作目录字段修改为你的测试项目输出路径,或者直接填写$(TargetDir)变量即可适配不同构建配置
内容的提问来源于stack exchange,提问作者Maarty
相关产品推荐
相关产品推荐

