Xunit的App.config

Tha*_*Mai 7 c# xunit.net

我正在为一些依赖于某些配置设置的辅助类编写一些xUnit测试,这些配置通常存储在执行项目的App.config或Web.config中.

配置如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="FileNamePattern" value="\\d{8}_\\w{4:20}\.png"/>
    <!-- and the likes -->
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我正在使用GUI运行程序(xunit.gui.clr4.exe)和xUnit控制台运行程序(在Jenkins CI服务器上)运行xUnit 1.9.目前,我可以通过手动设置xunit.gui.clr4.exe.config和xunit.console.exe.config文件,将这些配置值"注入"到测试环境中; 然而,这是乏味且容易出错的.

我也可以在灯具中模拟这些配置设置.但是在10个不同的文件中使用相同的夹具是相当重复的.

有没有更好的方法来使用xUnit模拟这些配置设置,例如为测试项目提供App.config文件?

Rub*_*ink 11

如果你的代码假定它们在app.config,那么xUnit.net支持通过提供它们将它们连接起来(通常当测试在DLL文件中时,这意味着你AssemblyName.dll.config在项目输出中得到一个 文件,跑者加载为设置,如果它在加载时存在).

显然,首先使用DI原则来消除这种依赖关系并没有什么坏处,但是我会说在你真正首先测试它之前不要乱用代码.

要将其保持干燥,请将app.config放在中央位置并将其添加为链接(通过对话框中"打开"按钮上的箭头).(是的,有很多不喜欢的东西 - 只有当你觉得它是最邪恶的方法时才使用.)


需要注意的一点是,除非您要求重新加载程序集,否则不会在GUI运行程序中重新加载更改.