gpt4 book ai didi

c++ - 是否可以将 PEX 与 C 一起使用?

转载 作者:搜寻专家 更新时间:2023-10-31 01:52:40 25 4
gpt4 key购买 nike

我是 PEX、Visual Studio 和 .NET 世界的新手,尽管如此,我为 C# 生成了一些测试。我读过,PEX也可以分析用任何 .NET 语言编写的 .NET 程序,所以现在我试图让 PEX 与 C 一起工作(我已经将代码存储在 C++ 中项目。这是正确的方法吗?)。由于没有Visual StudioC++ 的 PEX 插件,我尝试使用命令行界面。在教程“使用 Microsoft Pex 进行参数化单元测试”中说,我应该有一个以 .dll 或 .exe 结尾的“.NET 程序集”包含一个用 PexClassAttribute 和 public 注释的类用 PexMethodAttribute 注释的方法。由于只有教程提供了 C# 的示例,我尝试在没有的情况下在 .exe 上运行 PEX任何注解。所以我在 Visual Studio 中编译了我的代码,得到了我的assembly 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)

所以我有以下问题:

  1. 是否可以将 PEX 与 C 结合使用?或者我要将我的代码转换为C#?
  2. 看起来我的 light.exe 不是“.NET 程序集”。我如何从 C 代码生成“.NET 程序集”?
  3. 我收到错误消息是因为我的程序集格式错误还是因为我没有注释代码? (第二个对我来说不太可能,因为的错误信息。我会期待类似“没有探索应用所有过滤器后发现;你忘记了 [PexClass] 或者[PexMethod] 属性?”)。
  4. 如果错误不是由于缺少注释或格式错误造成的大会,那么根本原因是什么?
  5. 如何在 C++ 中用 PexClassAttribute 注释一个类?我需要哪些库以及如何生成一个库组装工作?

最佳答案

Pex 仅适用于 .NET 程序集。它可以与任何 .NET 语言一起使用,但 C 不是一种语言——即使是,它仍然只能在为 CLR 编写的纯 C 代码上工作,而不是在任何 native C 代码上工作(这是你的)。

因此,将 C 代码加载为 C++ 项目并没有帮助,因为即使 C++ 代码也无法被 Pex 分析,除非它以 CLR 为目标。

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com