Visual Studio 2010 Ultimate中的Pex和F#

Nic*_*las 5 f# pex visual-studio-2010 moles pex-and-moles

我一直在尝试在F#项目中使用Pex,但我遇到了几个问题,我将不胜感激一些帮助:

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

  2. 之后,每次从Visual Studio 2010中运行Pex Exploration时,都会收到!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 Reference列表中消失,我必须使用其文件路径手动引用它,否则我甚至无法再引用它,我必须卸载/重新安装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)?

Joh*_*Joh 1

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

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

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

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