visual-studio - 运行 Pex 探索时从 web.config 读取

标签 visual-studio unit-testing nunit web-config pex

我刚刚开始使用 Pex 为我的项目生成参数化单元测试。但是,当我让 Pex 运行其探索时,我的代码崩溃了,因为它无法从 web.config 中读取(更准确地说,ConfigurationSettings.AppSettings 有零个元素)。探索期间的工作目录是:“C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE”。我认为这是根本原因。

我知道处理这个问题的正确方法是创建与我需要的值相对应的模拟对象。然而,这将迫使我创建大量的模拟代码,并且不会提供任何有形的值(value),恕我直言,因为我将 web.config 与测试项目捆绑在一起没有问题。

如何在 Pex 探索执行时启用从 web.config(或 app.config)读取?

最佳答案

恐怕你已经回答了你自己的问题 - 你不会直接从你的代码访问你的数据库,那么为什么要使用你的配置文件呢?只需在配置文件设置周围放置一个薄包装,然后在测试中将其 stub 即可。您不必一次性完成所有工作,从正在测试的代码段开始,然后一点一点地将直接引用移到包装器后面。这样做的实际好处是它使测试变得容易。

此外,使用 Pex,如果您的代码在每次运行之间被完全拆除(取决于您的代码和测试是否确实如此),您每次都会访问文件系统,这将产生严重的问题对性能的影响。

关于visual-studio - 运行 Pex 探索时从 web.config 读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1618706/

相关文章:

visual-studio - 如何在Visual Studio 2015的FiraCode中启用连字

visual-studio - 如何禁用在 Visual Studio 编辑器中悬停期间出现的此弹出窗口?

c++ - Visual Studio 2012 : Compiler setup (possible to use Compiler from SDK eg. VC++2008-编译器 VC++2010-编译器)

c# - 与 Throws<T> 方法类似的通用 DoesNotThrow<T> 方法在哪里?

c# - 有没有办法在我的 NUnit 单元测试中使用 EQATEC 分析器?

c++ - Visual Studio 错误 LNK2001 : unresolved external symbol _fgetc_unlocked

java - 测试 jdbc 查询和准备好的语句

java - 如何模拟或以其他方式测试 readPassword?

django - 组织 Selenium 测试和单元测试的最佳实践

c# - 如何使用 Moq 提供方法实现?