我是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)

所以我有以下问题:
  • 是否可以在C中使用PEX?或者让我将代码转换为
    C#?
  • 看来我的light.exe不是“.NET程序集”。我如何能
    从C代码产生一个“.NET程序集”?
  • 我收到的错误消息是因为我的程序集格式错误还是
    因为我没有注释代码? (对我来说,第二似乎不太可能,因为
    错误消息。我会希望像“没有探索
    应用所有过滤器后发现;您忘记了[PexClass]还是
    [PexMethod]属性?”)。
  • 如果错误不是由于缺少注释或格式错误引起的
    组装,那么根本原因是什么?
  • 如何在C++中使用PexClassAttribute注释类?
    我需要哪些图书馆,以及如何制作
    组装工作?
  • 最佳答案

    Pex仅适用于.NET程序集。它可以与任何.NET语言一起使用,但C不是一种语言-即使是那样,它仍然仍然只能在针对CLR编写的纯C代码上工作,而不能在任何本机C代码上使用(您的是)。

    因此,将C代码加载为C++项目并没有帮助,因为Pex无法分析C++代码,除非它针对CLR。

    关于c++ - 可以在C中使用PEX吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12270385/

    10-11 01:05