我想在安装的Code :: Blocks.I中使用cppUnit测试项目 codeblocks-16.01与windows10中的mingw编译器。 有人请告诉我有没有代码块的cppUnit插件? 如何找到cppunit库和安装程序? 我应该先做什么?
答案 0 :(得分:1)
无需安装插件。
1 。首先使用this link下载cppunit
2 .unzip文件。
3 。打开MinGW shell。
单击以下批处理文件运行它。
C:\ MinGW的\ MSYS \ 1.0 \ msys.bat
(假设你已经在c盘中安装了mingw)
如果您使用带有mingw的软件包安装了Code :: Blocks,则无法在Code :: Blocks安装中的mingw文件夹中找到msys文件夹。您可以使用this link下载MinGW。安装它。不需要在Code :: Blocks安装文件夹中删除安装。观察this video以获取更多信息。
4 。使用以下命令编译它。
cd C:\cppunit-1.12.1
./configure
make
make install
使用this link获取更多信息(该页面讨论了编译和安装Cunit。但使用相同的说明。)
5.打开Coad :: Blocks IDE并在
中打开code :: block项目(.cbp)C:\ CppUnit的-1.12.1 \ SRC \ CppUnit的\ cppunit.cbp
根据需要在发布或调试模式下使用Coad :: Blocks IDE构建它。 如果您成功完成,可以在
中找到libcppunit.aC:\ CppUnit的-1.12.1 \ SRC \ CppUnit的\释放
否则转到project-> properties->构建目标并检查"输出文件名"对于选定的Build目标(发布或构建)。
6 。在Code :: Blocks中打开一个新的控制台应用程序。
转到项目 - >构建选项 - >搜索目录 - >编译器
添加C:\ cppunit-1.12.1 \ include
转到项目 - >构建选项 - >搜索目录 - >链接器
添加C:\ cppunit-1.12.1 \ src \ cppunit \ Release
转到项目 - >构建选项 - >链接器设置
添加C:\ cppunit-1.12.1 \ src \ cppunit \ Release \ libcppunit.a
在main.cpp文件上复制并粘贴以下程序,而不是默认的hello world程序。
(我从this video)
复制了这个程序#include <iostream>
#include <vector>
#include<cppunit/TestCase.h>
#include<cppunit/TestFixture.h>
#include<cppunit/TestCaller.h>
#include<cppunit/TestResult.h>
#include<cppunit/ui/text/TestRunner.h>
using namespace std;
class Task
{
public:
unsigned int id;
string description;
Task(unsigned int new_id,string new_description)
{
id = new_id;
description= new_description;
}
};
class ToDoList
{
public:
vector<Task> tasks;
ToDoList(){
tasks.clear();
}
bool add_new_task(string description)
{
if (description.empty())return false;
unsigned int new_id = static_cast<int>(tasks.size())+1;
Task new_task(new_id,description);
tasks.push_back(new_task);
return true;
};
};
//unit test for to do list
class ToDoListTest : public CppUnit::TestFixture
{
public:
ToDoList *my_tasks;
void setUp()
{
my_tasks=new ToDoList();
}
void tearDown()
{
delete my_tasks;
}
void test_add_normal_task()
{
bool result = my_tasks->add_new_task("Write 2130");
CPPUNIT_ASSERT(result=true);
}
void test_add_empty_task()
{
bool result = my_tasks->add_new_task("");
CPPUNIT_ASSERT(result=false);
}
static CppUnit::Test* suite()
{
CppUnit::TestSuite *suite_of_tests = new CppUnit::TestSuite("ToDoList Test");
suite_of_tests->addTest(new CppUnit::TestCaller<ToDoListTest>("test Add normal task",&ToDoListTest::test_add_normal_task));
suite_of_tests->addTest(new CppUnit::TestCaller<ToDoListTest>("test Add empty task",&ToDoListTest::test_add_normal_task));
return suite_of_tests;
}
};
int main()
{
CppUnit::TextUi::TestRunner runner;
runner.addTest(ToDoListTest::suite());
runner.run();
return 0;
}
建立一个运行它。如果你得到了以下输出,你已经成功了。
..
OK (2 tests)
Process returned 0 (0x0) execution time : 0.542 s
Press any key to continue.
7 。现在问题是如何停止使用最终产品构建测试代码。
转到project-&gt; properties-&gt;构建目标
添加新的Build target.ie测试
您可以使用相同选项卡中提供的复选框选择需要为测试环境构建的所有文件。选择发布或调试build-targets。现在可以使用复选框取消选择仅属于测试环境的所有文件。您可以观看的其他信息this video(视频不是英文。他正在谈论不同的测试框架工作。不是关于cppunit。但是你可以了解从4.50到5.57创建新的构建目标)