问题标签 [cxxtest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
573 浏览

c++ - 无法编译 cxxtest 生成的 cpp 文件

所以我有一个 Visual Studio 2015 c++ 项目,其中包含一个 testsuite.h 文件,就像 cxx 文档中的那个一样。我运行 cxxtestgen python 工具来生成一个 testsuite.cpp。我将 testsuite.cpp 文件放在另一个 Visual Studio 2015 C++ 空项目中。将 cxxtest 添加到项目的其他包含目录中。但是当我构建时,我收到以下错误:

但它在附加的包含目录文件夹中。

0 投票
1 回答
231 浏览

c++ - Travis-Ci 安装并运行 CxxTest

我正在尝试为托管在 Github 上的开源项目添加 Travis-Ci 支持

CMake尝试查找时出现问题CxxTest。在不受信任Travis-Ci的旧 Ubuntu 版本上运行。CxxTest我取得了一些成果。在此状态下CxxTest安装正常,但CMake无法找到cxxtestgen.

问题:如何正确安装和使用CxxTestin Travis-Ci

在 Travis 上构建日志

特拉维斯.yml

CMake 日志

0 投票
1 回答
1202 浏览

c++ - 在CMake中链接CxxTest,它说它成功但未能构建

我刚刚下载了 4.4 版的 cxxtest 并将我的 zip 文件解压缩到这个路径:C:/cxxtest-4.4。紧接着,没有做任何额外的步骤,我打开了 CLion 并尝试将 CxxTest 添加到我的项目中,如下所示:

如果我没有收到以下错误,我必须手动设置这两个变量:

现在一切正常,这是我的 Cmake 调试:

现在我尝试在头文件中使用 cxxtest/TestSuite.h 时,它说找不到它。这让我发疯了,拜托,我需要你的帮助!

提前致谢!

编辑:我设法链接它,现在我可以找到头文件,将这一行添加到 CMake 文件中:

现在,当我构建时,我得到以下输出:

0 投票
0 回答
264 浏览

stubs - cxxtest 中的模拟和存根示例

我正在使用 cxx 测试进行单元测试。我对所有东西都有正确的设置,我已经为一些简单的函数编写了测试用例,但是代码中有很多依赖项,我发现很难编写更多的测试套件。我已经在 Google 上彻底搜索了 mocks 和 stubs,但我仍然对 mocks 和 stubs 没有完整的感觉。我想有一些使用 mocks 和 stubs 的项目的适当示例。任何适当的 GitHub 链接也可以使用。或者任何适当的解释也将非常有用。

0 投票
0 回答
481 浏览

c++ - 尝试运行编译文件时找不到 cxxtest 文件

我开始写一个关于 C++ 的小项目。我只是想使用 TDD 进行开发,因为在 Java 中我总是这样做。我遇到了一个问题,即在 Java IDE 和工具(如 maven 等)中使用任何库等都更容易一些。但这并不完全是我要谈论的话题。

我找到了 cxxtest 框架并决定在我的项目中添加一个。我将最新版本的源代码完全添加到项目中的测试包中,然后编写简单的测试,然后通过“python cxxtestgen --error-printer -o ../runner.cpp ../ 运行预处理器(使用python) ../testSample.h”来自 cxxtest-4.4/bin 文件夹。

之后,我将 runner.cpp 文件放入 cxxtest-4.4 文件夹。我尝试在合适的位置使用命令“g++ -o runner runner.cpp”运行它......并收到以下消息:

这里我把我的项目结构: 项目结构

这似乎很奇怪,因为我以前从未见过同样的麻烦。它无法找到相同的问题。

所以,如果有人告诉我正确的方向来解决这个问题,那就太好了。如果您需要其他内容来更清楚地了解此问题(代码、任何技术信息等),请告诉我

一些信息:我在 macOS 上使用 CLion,这意味着我有 CMake(至少 3.6 版),我的 Mac 上同时有 perl 和 python。使用 C++14 语言版本的项目。

0 投票
1 回答
41 浏览

c++ - 用户定义的文字未能包含另一个文件

我有一个 Komp 类,其中我有一个用户定义的文字constexpr Komp operator""_i(long double x)来从 eg 生成一个 komp 对象Komp k = 1 + 5.0_i;

这在komp.cpp的 main() 中工作正常,但是当我在 testing.cpp (其中包括komp.h )中编写相同的确切语句时,我得到以下错误。komp.h中的所有其他功能在testing.cpp中都可以正常工作。我希望像其他函数一样包含用户定义的文字。

为什么用户定义的文字在testing.cpp中不起作用,而其他函数却在起作用?

错误:

0 投票
0 回答
15 浏览

c++ - 不能让 cxxtest --abort-on-fail 处理一个简单的例子

我试图运行这个单元测试(ttt.hpp):

通过执行:

但正如文档所述,它不会因任何失败而中止:

(我也尝试用 gdb 执行它,没有任何报告,程序正常退出,只有退出代码非零,但没有关于中止...)

难道我做错了什么 ?

0 投票
1 回答
288 浏览

cmake - 如何强制 ctest 仅在某些子目录中运行单元测试?

我的 cmake 项目具有以下树结构:

where/deps包含所有 3rd-party 依赖项,/basis目录/study包含我编写的例程。

在我的主 CMakeLists.txt 文件中,我有以下代码来启用 CxxTest

/basis/CMakeLists.txt,我有

/study/CMakeLists.txt,我有类似的东西/basis/CMakeLists.txt。运行cmake ..,目录makebuild,我可以运行ctest,来build/basis/分别build/study/运行这两个子目录中定义的单元测试。但是我想有一种方法来运行这两个子目录中定义的所有单元测试,所以我尝试ctest/build/. 不幸的是,这个命令似乎也运行在/deps/. 我们如何强制只运行我自己定义的ctest所有单元测试?build/basis/build/study/

0 投票
1 回答
34 浏览

c++ - 我应该#include .cpp 文件到TestSuite 的标题以使cxxtest 工作吗?

情况如下:我有一个由两个文件组成的简单项目 -Calc.hCalc.cpp.

计算.h:

计算.cpp:

CalcTestSuite.h:

问题

问题是,当我这样做时cxxtestgen --error-printer -o runner.cpp CalcTestSuite.h && g++ -I$cxxtest -o runner.o runner.cpp && ./runner.o,会发生错误:

毫无疑问,这是因为我在 Visual Studio 2019 或其他 IDE 之外编译代码时编译错误。

我如何尝试解决问题:

我看到了几个解决方案:

1.) 将构建命令保持原样并添加#include "Calc.cpp"到 TestSuite 文件,这显然可以工作,但这是一个不好的做法。

2.) 将 Calc.cpp 添加到 g++ command: g++ -I$cxxtest -o runner.o Calc.cpp runner.cpp && ./runner.o,但是,它会导致另一个问题:

在那种情况下,我也尝试更改#pragma once#ifndef CALC_H...阻止Calc.h,但错误仍然存​​在。

我尝试搜索真实世界的 cxxtest 代码示例,但没有找到我很久以前看到的站点。我很高兴收到有关处理此问题的最佳方法的任何提示。

如果你知道我可以搜索真实代码片段的网站,如果你分享它,我会很高兴。