【发布时间】:2012-09-04 19:49:29
【问题描述】:
我是 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)
所以我有以下问题:
- 是否可以将 PEX 与 C 一起使用?或者让我将我的代码转换为 C#?
- 看起来我的 light.exe 不是“.NET 程序集”。我如何 从 C 代码生成“.NET 程序集”?
- 我收到错误消息是因为我的程序集格式错误还是 因为我没有注释代码? (第二个对我来说似乎不太可能,因为 的错误信息。我会期待类似“没有探索 在应用所有过滤器后找到;您是否忘记了 [PexClass] 或 [PexMethod] 属性?”)。
- 如果错误不是由于缺少注释或格式错误 大会,那么根本原因是什么?
- 如何在 C++ 中使用 PexClassAttribute 注释类? 我需要哪些库以及如何生成 组装工作?
【问题讨论】:
-
你的标题指的是C,但问题被标记为C++。你关心哪种语言? (你真的在问 C++。)
-
是的,实际上我也应该标记 C,因为我对这两种语言都感兴趣。