【问题标题】:How Do I run UnitTest++ using the command line on Windows如何在 Windows 上使用命令行运行 UnitTest++
【发布时间】:2012-03-21 08:26:17
【问题描述】:

我是 UnitTest++ 的新手,在 Windows 上使用命令行使其工作时遇到问题(我需要它只能使用命令行工作)。

我已经构建了解决方案并且我有库 (UnitTest++.vsnet2005),但是当我尝试构建它时,它显示“UnitTest++.h:没有这样的文件或目录”。

这是我正在使用的命令: g++ -o TestRowMajor TestRowMajor.cpp -L"C:\Users\myUser\Documents\Proyects\Tools 测试\UnitTest++\tests\unit" -lUnitTest++

这是我要测试的简单代码,是他们web site中的代码

  // test.cpp
 #include <UnitTest++.h>

  TEST(FailSpectacularly)
  {
    CHECK(false);
  }

  int main()
  {
    return UnitTest::RunAllTests();
  }

任何帮助将不胜感激,在此致谢。

【问题讨论】:

    标签: c++ unit-testing command-line unittest++


    【解决方案1】:

    编译器找不到 UnitTest++.h。因此,您需要做的第一件事是确保您可以自己找到该文件。

    您的命令行有 -I 选项,将 UnitTest++ 添加到包含路径。根据命令行,该目录与源文件 TestRowMajor.cpp 位于同一文件夹中。这是真的吗?在我看来,您更有可能在其他地方安装了 UnitTest++,因此您需要在 -I 选项中指定 绝对路径,而不是相对路径。

    【讨论】:

    • 感谢回答,我不知道UnitTest++怎么安装,不知道能不能安装,我的理解是要生成库,然后包含在.cpp文件中, 如果我错了纠正我。为了方便起见,我的 .cpp 文件与我使用 Visual Studio 生成的库位于同一目录中。这比其他任何事情都更无知,但我已经阅读并找不到这样做的方法。
    • 对于大多数库来说,安装包括在某处解压缩档案,并可能编译一些东西。你已经完成了这两个步骤,所以你已经安装了它。问题是在哪里。找到 UnitTest++.h。如果找不到它,那么你也不能指望编译器找到它。
    • 如果我将 .cpp 文件放在 UnitTest++ 所在的同一目录中,它不会给我之前的错误,现在我得到这个:“在来自 TestRowMajor 的 UnitTest++.h:6 包含的文件中。 cpp:4: Config.h:17: 表达式中的无效标记在 ExecuteTest.h:5、TestMacros.h:5、UnitTest++.h:12、TestRowMajor.cpp:4: MemoryOutStream.h:8 中包含的文件中: sstream: 没有这样的文件或目录”我不知道我是否应该做其他事情或不同的事情,因为我想我不应该触摸或更改现有代码。
    • 首先,停止移动源文件。这听起来就像您在黑暗中摸索,尝试直到某些事情奏效,而不考虑您更改了什么或它为什么有效,这不是学习。我让你找到文件 UnitTest++.h。当你找到它时,取该文件所在的 directory 并将该目录放在你的 -I 选项中。然后编译器可以找到那个文件,然后你就可以继续了。
    • 接下来,如果你的编译器找不到名为 sstream 的头文件,那么你的整个编译环境就会被破坏。这是一个基本的系统头文件,g++ 应该很容易找到它。不过,解决方案的第一步与以前相同:在您的系统上查找文件,以便知道它在哪里。下一步是让编译器识别相同的位置。但一次只做一步。
    猜你喜欢
    • 2018-11-17
    • 2013-09-13
    • 2018-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    • 2014-01-16
    • 2021-05-17
    相关资源
    最近更新 更多