我刚刚开始使用Pex为我的项目生成参数化单元测试。但是,当我让Pex运行它的探索时,我的代码崩溃了,因为它无法从web.config读取(ConfigurationSettings.AppSettings有零元素更精确)。探索期间的工作目录是:“C:\ Program Files(x86)\ Microsoft Visual Studio 9.0 \ Common7 \ IDE”。我认为这是根本原因。
我知道处理这个问题的合适方法是创建与我需要的值相对应的模拟对象。然而,这将迫使我创建大量的模拟代码,并且不会提供任何有形的价值IMHO,因为我没有问题将web.config与测试项目捆绑在一起。
如何在Pex探索执行时启用web.config(或app.config)读取?
答案 0 :(得分:3)
您已经回答了我自己的问题 - 您不会直接从您的代码访问您的数据库,那么为什么要使用您的配置文件呢?只需在配置文件设置周围放一个薄的包装器,然后在测试中将其存根。您不必一次完成所有操作,从测试中的代码片段开始,一点一点地移动包装器后面的直接引用。这样做的实际好处是它使测试变得容易。
另外,对于Pex,如果你的代码在每次运行之间完全被拆除(取决于你的代码和测试是否真的如此),你每次都会遇到严重的文件系统对绩效的影响。
答案 1 :(得分:1)
Pex开发人员不会(经常)读取stackoverflow。您最好在http://social.msdn.microsoft.com/Forums/en/pex/threads
的论坛上询问与Pex相关的问题