我是PEX,Visual Studio和.NET世界的新手,我完全没有 为C#生成了一些测试。我读过,PEX也可以分析 用任何.NET语言编写的.NET程序,所以目前我 试图让PEX使用C(我已经将代码存储在C ++中) 项目。这是正确的方法吗?)。由于没有Visual Studio 用于C ++的PEX加载项,我尝试使用命令行界面。 在教程“使用Microsoft Pex进行参数化单元测试”中 说,我应该有一个以.dll或.exe结尾的“.NET程序集” 包含用PexClassAttribute和public注释的类 用PexMethodAttribute注释的方法。仅限教程 为C#提供了一个示例,我尝试在.exe上运行PEX而没有 任何注释。所以我在Visual Studio中编译了我的代码,得到了我的代码 汇编light.exe并尝试在其上运行PEX。我得到了以下内容 错误:
Microsoft Pex v0.94.51006.1 -- http://research.microsoft.com/pex --
v4.0.30319
Copyright (c) Microsoft Corporation 2007-2010. All rights reserved.
unexpected error: error while loading of 'light' (currently running
with 4 bytes/pointer).
LAUNCHER FAILED
unexpected failure: error while loading assembly (-1006 - 0xfffffc12)
所以我有以下问题:
答案 0 :(得分:3)
Pex仅适用于.NET程序集。 可以与任何.NET语言一起使用,但C不是一个 - 即使它只是那时它仍然只能用于编写目标CLR的纯C代码,而不是任何本机C代码(你的是)。
因此,将C代码作为C ++项目加载并没有帮助,因为即使Cx代码也不能被Pex分析,除非它以CLR为目标。