gpt4 book ai didi

c++ - 代码覆盖错误(未检测二进制文件)

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:45:01 27 4
gpt4 key购买 nike

问题:

微软 Visual Studio 企业版 2015

版本 14.0.25431.01 更新 3

我正在尝试使用代码覆盖功能,但它返回了这个错误:

Empty results generated: No binaries were instrumented. Make sure the tests ran, required binaries were loaded, had matching symbol files, and were not excluded through custom settings. For more information see http://go.microsoft.com/fwlink/?LinkID=253731

我的 .coverage 文件充满了废话,以“PCHÿ”开头。我认为我的问题看起来与此类似:Issue with Code Coverage in VS 2012 ,但删除 .suo 文件并在管理员中运行 Visual Studio 并没有解决任何问题。

如何复制:

1) 创建新的空项目“MyProject”

2) 添加新文件“Calculator.hpp”

#pragma once

class Calculator
{
public:
int add(int a, int b);
int sub(int a, int b);
};

3) 添加新文件“Calculator.cpp”

#include "Calculator.hpp"

int Calculator::add(int a, int b)
{
return a + b;
}

int Calculator::sub(int a, int b)
{
return a - b;
}

4) 添加新文件main.cpp

#include "Calculator.hpp"
#include <iostream>

using std::cout;

int main()
{
Calculator calc;
std::cout << calc.add(5, 11) << std::endl;
std::cout << calc.add(11, 1) << std::endl;

return 1;
}

5) 构建解决方案。 (0 个错误)

6) 将新的测试项目添加到解决方案中,如下所述:https://msdn.microsoft.com/en-us/library/hh419385.aspx#objectRef :

  1. 将新的 native 单元测试项目添加到解决方案“CalculatorUnitTest”
  2. 将“main.obj”和“Calculator.obj”添加到“CalculatorUnitTest”的链接器/输入/附加依赖项
  3. 将 obj 文件的路径添加到“CalculatorUnitTest”的链接器/常规/附加库目录。 (在我的例子中:D:\JF\Programming\Tests\MyProject\MyProject\Debug)
  4. 将“MyProject”的头目录添加到 VC++ Directories/Include Directories。 (在我的例子中:D:\JF\Programming\Tests\MyProject\MyProject)。

7) 将“unittest1.cpp”中的代码替换为:

#include "stdafx.h"
#include "CppUnitTest.h"
#include <Calculator.hpp>

using namespace Microsoft::VisualStudio::CppUnitTestFramework;

namespace CalculatorUnitTest
{
TEST_CLASS(UnitTest1)
{
public:

TEST_METHOD(TestMethod1)
{
Calculator calc;
Assert::AreEqual(5, calc.add(2, 3));
}

};
}

8) 构建解决方案(0 个错误,TestMethod1 出现在测试资源管理器中)

9)右击TestMethod1,“Run Selected Tests”(测试成功通过)

10) 右键单击​​ TestMethod1,“Analyze Code Coverage for Selected Tests”(代码覆盖失败)。

在 D:\JF\Programming\Tests\MyProject\Debug 中,我有我的 MyProject.exe 和 MyProject.pdb 以及 CalculatorUnitTest.dll。

最佳答案

首先,我不确定 Visual Studio 2015 (C++) 是否支持“.exe”类型的单元测试项目。但是您直接从项目中使用“.obj”。您需要将“.pdb”文件放在同一文件夹中。

我创建了一个静态库项目并添加了单元测试。我的环境也有同样的问题。

关于c++ - 代码覆盖错误(未检测二进制文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40600854/

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