VS Test Explorer中的单元测试结果错误

时间:2019-07-07 15:30:32

标签: c++ visual-studio unit-testing opencv googletest

我正在使用OpenCV制作图像处理应用程序。我想用TDD开发它,所以我开始学习googletest。我使用MS Visual Studio 2019中的Google Test Adapter和ColorDetector将ColorDetectorTests项目设置为Executable,并在Post-Action中构建了静态库。首先,通过了类似EXPECT_TRUE(true)的虚拟测试。然后,我在项目中创建了readImage函数。创建边缘情况-当在某些路径中不存在读取图像时,一切正常。但是,当我通过正确的图像路径并期望得到肯定的结果时,会发生奇怪的行为。手动运行测试项目时,我可以进行所有正常测试。但是在VS Test Explorer窗口中,第二项测试失败。为什么会这样?

enter image description here

ColorDetector:

bool ColorDetector::readImage(std::string imagePath)
{
    cv::Mat image;
    image = cv::imread(imagePath, cv::IMREAD_COLOR);

    if (image.empty()) {
        std::cerr << "Could not open or find the image" << std::endl;
        return false;
    }

    return true;
}

测试:

#include <gtest/gtest.h>

#include "../ColorDetector/ColorDetector.h"

const std::string inputImageDir = "Resources/Input/";
const std::string wrongInputImage = inputImageDir + "wrong.png";
const std::string correctInputImage = inputImageDir + "correct.jpg";

class ColorDetector_Test : public ::testing::Test
{
protected:
    ColorDetector colorDetector;
};


TEST_F(ColorDetector_Test, LoadImage_NotExisting_Failed) {
    EXPECT_FALSE(colorDetector.readImage(wrongInputImage));
}

TEST_F(ColorDetector_Test, LoadImage_Correct_Succeeded) {
    EXPECT_TRUE(colorDetector.readImage(correctInputImage));
}

我的代码,项目配置是否存在问题,或者是MS错误?

编辑:问题已解决。我仅将图像添加到项目目录,而Test Explorer从输出目录运行它们。将图像添加到Solution / x64 / Release后,一切正常。

0 个答案:

没有答案