5

我一直在尝试在 F# 项目中使用 Pex,但我遇到了几个问题,希望能得到一些帮助:

  1. Visual Studio Pex 插件工作了半个小时,而不是用于复杂的项目探索。

  2. 之后,每次我从 Visual Studio 2010 中运行 Pex 探索时,都会收到一条!warning! [metadata] no explorations found after applying all filters; did you forget a [PexClass] or [PexMethod] attribute?错误消息。如果我在进行探索时复制并粘贴 Visual Studio 运行的命令并删除一些属性(如 sourceFilter ...)并从命令控制台运行它,那么我会得到一些生成的测试。知道为什么 Visual Studio 会生成无效命令吗?

  3. 一段时间后,Microsoft.Pex.Framework.dll 要么从 .Net 引用列表中消失,我必须使用其文件路径手动引用它,或者我什至无法再引用它,我必须卸载/重新安装 Pex。( A reference to C:\Program Files (x86)\Microsoft Moles\PublicAssemblie\Microsoft.Pex.Framework.dll could not be added. Please make sure that the file is accessible, and that it is a valid assembly or COM component.)

当我处理 C# 项目时,不会发生所有这些问题。

学术版出现问题 1 2 3。

使用可用于 MSDN 订阅者的版本,我从来没有在 Visual Studio (Visual Studio 2010 Ultimate NO SP1) 中使用它。但是它可以在命令提示符下工作。这个版本我没有遇到问题3。

有没有人设法让 Pex 在 Visual Studio 中与 F# 一起工作?如果是,你能告诉我你是怎么做到的吗?您使用哪些版本(VS 和 Pex)?

4

1 回答 1

1

我在使用 F# 运行 Pex 方面取得了一些成功。如果我相信我的下载文件夹,我使用的版本是 Microsoft Pex and Moles 0.94.51006.1 Release for (x86) 的学术版本。安装文件名为 pex.academic.x86.msi。

我不知道那个版本是否早于你的版本。

我的试验印象是 Pex 和 F# 不是一个很好的组合:Pex 坚持使用空输入创建测试用例。由于在 F# 中生成空值并不常见,这通常不是我感兴趣的场景。添加许多假设来消除那些让我 Pex 无法生成测试用例的假设。诚然,我正在测试的功能太复杂了,我仍然喜欢 Pex 背后的想法,并且可能会在更小/更简单的代码片段上再次尝试。

在 VS 2010 中使用 Pex 及其 GUI 效果相对较好,但并非没有挫败感。

于 2011-10-06T20:01:41.857 回答