gpt4 book ai didi

moles - 将 Moles 用于 TDD 和 HttpWebRequest

转载 作者:行者123 更新时间:2023-12-03 18:37:10 26 4
gpt4 key购买 nike

我正在使用带有 SP1 的 VS2010(也在同一台机器上安装了 VS2012)。痣 1.0该项目正在使用.NET 4我将 moles 程序集添加到 system.dll 并在编译时出现以下错误

错误 46 命名空间“System.Collections.Generic”中不存在类型或命名空间名称“IReadOnlyList”(是否缺少程序集引用?)[C:\Test\obj\Debug\Moles\s\m.g. csproj] C:\Test\m.g.cs 测试

据我所知,IReadOnlyList .NET 4.5。

还有其他人遇到过这个问题吗?

最佳答案

更新的解决方案我能够让 Pex 在安装了 .Net Framework 4.5 的 VS 2010 中运行。也许其他人已经解释过这是解决方案,但我的问题(对 Moles 和 Pex 不熟悉)是许多解释都含糊不清。感谢这些帖子的作者,因为他们让我朝着正确的方向前进:

http://feherzsolt.wordpress.com/2013/02/13/moles-and-net-4-5/

http://www.daedtech.com/using-moles-with-the-system-assembly

因此解决方案是在 Pex 创建 yourAssemblyUnderTest.moles 文件的同一级别的测试项目中创建一个新的 .moles 文件 (System.moles),并将以下内容添加到文件中。

<Moles xmlns="http://schemas.microsoft.com/moles/2010/">
<Assembly Name="System" ReflectionOnly="true" />
</Moles>

您可能必须清理(或手动删除 obj 文件夹内容)并重建,但此解决方案对我有用。我还注意到第一次构建会报告构建错误,但这些错误会在后续构建中消失。

替代解决方案我知道这不是 THE 解决方案,但它是一个允许 Pex 运行的(糟糕的)解决方法……而且这太长了,无法发表评论。如果有人知道如何让 PEX 在装有 4.5 .Net Framework 的机器上运行,请回复。

这是我的场景。我有一台装有 .Net Framework 4.5 的机器,并且安装了 Visual Studio 2010 和 2012。我安装了 Pex (en_visual_studio_2010_pex_0.94.51023.0_power_tools_x64_598803.exe) 并且可以在针对 .Net Framework 4.0 的 VS 2010 项目中运行 Pex。我可以运行 Pex,它发现了问题……但是一旦我将问题提升到单元测试,单元测试项目就不会编译,因为以下构建错误

The type or namespace name 'IReadOnlyList' does not exist in the namespace 'System.Collections.Generic' (are you missing an assembly reference?)

经过大量搜索,并了解到 Pex 或 Moles 正在用 4.0 版本替换 4.5 .Net Framework 程序集后,我决定卸载 4.5,安装 4.0,然后试一试。在 4.0 上运行效果很好,我不需要定义 Mole 类型的过滤器来让它工作。然后我尝试再次尝试升级到 4.5 框架……但遗憾的是我最终又回到了 IReadOnlyList 命名空间问题的起点。

关于moles - 将 Moles 用于 TDD 和 HttpWebRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13111428/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com