我想在Windows上安装CppUnit.
我已经从这里下载它,解压缩它,并注意到所有文件都有,名字中有v,没有扩展名.
安装说明(在包含的文件中,以及我发现的建议安装Windows的每个站点上都是针对Linux的.)(安装CppUnit for Windows说明的示例).
其他人,只是为了构建:( 例如:为Visual Studio指令安装CppUnit或在同一主题上安装第二个答案).
在上面的链接上接受的答案有一个评论说,接受它的人"排序它,我下载了另一个版本" - 在他遇到与我完全相同的问题之后 - 但没有指明什么版本或从哪里...
我上面的链接是最新版本.
我能够在2008年找到一个非常旧的版本1.12.1,它几乎可以构建(有很多错误).我现在用它来学习如何实现CppUnit.不过,它还有4年......我希望能够使用最新的版本......
请问,有人可以给我一些建议,我可以在Windows中实现并运行,以安装最新的cppUnit吗?
谢谢.
我的项目包含C文件.在某些文件中,我将函数定义为static.
我在单元测试中使用CppUnit,我想测试这些静态函数.我知道不允许从文件外部(它定义的地方)调用函数.有没有解决方案来避免这个问题,以便从我的C++测试文件中调用这些静态函数?
我有一个继承自另一个类的类,如下所示:
class TestClass : public BaseClass
Run Code Online (Sandbox Code Playgroud)
我想知道是否有可能使用TEST_CLASS宏或其他宏作为Microsoft单元测试框架C++的一部分,使这个测试类.我试过了:
class TEST_CLASS(TestClass : public BaseClass)
Run Code Online (Sandbox Code Playgroud)
但IDE给出错误'错误:预期定义或标记名称'和编译器错误是错误C3861:'__ GetTestClassInfo':标识符未找到
我知道继承测试类可能是不好的做法,但它会使实现测试变得更容易.我对C++比较陌生,所以我想知道它是否是我错过的简单内容,或者它是否是不可能的.
谢谢,
我的组织正在使用CppUnit,我正在尝试使用不同的参数运行相同的测试.在测试中运行循环不是一个好选择,因为任何失败都会中止测试.我已经看过TestDecorator并TestCaller但也似乎真的适合.代码示例会很有帮助.
我正在尝试使用Visual Studio 2010构建CppUnit(ReadMe中的第一行说1.13版).按照说明(在Web论坛上找到,在CppUnit文档中找不到多少); 我找不到有效的文件扩展名.所有文件扩展名都以",v"结尾,这个奇怪的","v"扩展名是什么?它的目的是什么?
我很沮丧,如果有人可以帮助如何在VS2010项目中加载CppUnit并构建它......这将是一个很大的帮助!
我正在尝试建立libtorrent共享主机.所以建立了CPPUnit(1.12.1)--prefix=$HOME.之后我的$HOME/lib并$HOME/include包含CPPUnit库和标头.
我导出的LD_路径
export LD_LIBRARY_PATH=$HOME/lib:$LD_LIBRARY_PATH
export LD_INCLUDE_PATH=$HOME/include:$LD_INCLUDE_PATH
Run Code Online (Sandbox Code Playgroud)
然后我运行libtorrent/autogen.sh --prefix=$HOME并获得以下警告,这阻止我运行configure:
aclocal...
aclocal:configure.ac:20: warning: macro `AM_PATH_CPPUNIT' not found in library
Run Code Online (Sandbox Code Playgroud)
cppunit.m4文件位于$ HOME/share/aclocal中.我想libtorrent由于某种原因找不到那个目录.
我正在尝试使用CppUnit编译测试程序.问题是,使用此示例代码:
//[...]
class EntityComponentTest : public CppUnit::TestFixture
{
CPPUNIT_TEST_SUITE( EntityComponentTest );
CPPUNIT_TEST( testGetComponents );
CPPUNIT_TEST_SUITE_END();
Entity e;
public:
void setUp(){
e.addComponent("1", new TestComponent("Hello 1"));
e.addComponent("2", new TestComponent("Hello 2"));
}
void tearDown(){}
void testGetComponents()
{
TestComponent &first = static_cast<TestComponent&>(e.getComponent("1"));
TestComponent &second = static_cast<TestComponent&>(e.getComponent("2"));
CPPUNIT_ASSERT(first.msg == "Hello 1");
CPPUNIT_ASSERT(second.msg == "Hello 2");
}
};
CPPUNIT_TEST_SUITE_REGISTRATION( EntityComponentTest );
int main(void)
{
//followed from tutorial
CppUnit::TextUi::TestRunner run;
CppUnit::TestFactoryRegistry &r = CppUnit::TestFactoryRegistry::getRegistry();
run.addTest(r.makeTest());
run.run("", false, true);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我收到链接错误:
Undefined symbols for architecture x86_64: …Run Code Online (Sandbox Code Playgroud) 我加入了一个CPPUnit用于单元测试的项目,并将添加一些可能共享设置和拆卸代码的测试.在研究这个问题时,我遇到了
CPPUNIT_TEST_SUITE_PROPERTY
Run Code Online (Sandbox Code Playgroud)
(来自https://people.freedesktop.org/~mmohrhard/cppunit/group___writing_test_fixture.html)
它的描述说
将属性添加到测试套件构建器上下文.
http://cppunit.sourceforge.net/doc/cvs/group___writing_test_fixture.html说明如下:
将属性添加到测试套件构建器上下文
我不确定它的预期用途或目的是什么,尽管看起来它可能有助于共享公共信息等.我没有看到它的使用示例.
这有什么价值,是否有一些例子指向我?
我知道CppUnit可以通过以下方式测试异常:
CPPUNIT_ASSERT_THROW(expression, ExceptionType);
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释如何CPPUNIT_ASSERT_THROW()实施?
我喜欢Visual Studio单元测试框架的一件事是,所有单元测试都是通过IDE完成的,从类定义到运行测试,测试都有一个图形绿色/红色条,给出测试结果.
我正在使用CppUnit和Google Test来测试我的应用程序.在给定文本输出的情况下,我在Visual Studio IDE中成功地进行了集成.
我想知道是否有人构建Visual Studio Addin允许从DevStudio内部运行测试并有一个图形测试运行器来提供反馈?
谢谢,
尼克
cppunit ×10
c++ ×7
unit-testing ×4
c ×1
clang ×1
configure ×1
googletest ×1
inheritance ×1
install ×1
linker ×1
macos ×1
makefile ×1
windows ×1