Visual Studio 2010 Ultimate中的Pex和F#

5

我一直在尝试在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引用列表中,我必须手动引用它的文件路径,或者我甚至无法再引用它,必须卸载/重新安装Pex。(A reference to C:\Program Files (x86)\Microsoft Moles\PublicAssemblies\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。

有人成功地在Visual Studio内将Pex与F#一起使用吗?如果是,请告诉我你是如何做到的?你使用哪些版本(VS和Pex)?


想要尝试他们的论坛,请访问http://social.msdn.microsoft.com/Forums/en-US/pex/threads/。 - GregC
你可以在那些论坛中搜索过去的问题和回答;但是那个论坛已经被归档,现在更倾向于在StackOverflow上发布问题。参考:http://bit.ly/nj252B - Mike Christian
谢谢各位,我创建了一个 Pex.exe 的封装器,但是我不使用 F# 项目的 Visual Studio 集成 :/ - Nicolas
1个回答

1

我曾尝试过在F#中使用Pex并取得了一些成功。根据我的下载文件夹中的记录,我使用的版本是Microsoft Pex和Moles 0.94.51006.1 Release for (x86)学术版。安装文件名为pex.academic.x86.msi。

不确定那个版本是否比你使用的版本更旧。

经过我的试验,我认为Pex和F#并不是很搭配:Pex坚持要创建包含null输入的测试用例。由于在F#中生成null值并不常见,因此这通常不是我感兴趣的场景。添加大量假设以消除这些问题只会导致Pex无法生成测试用例。诚然,我正在测试的函数过于复杂,但我仍然喜欢Pex背后的想法,可能会在更小、更简单的代码片段上再次尝试。

在VS 2010中使用Pex及其GUI相对顺利,但也有些令人沮丧的地方。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接