51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 8510|回复: 5
打印 上一主题 下一主题

CppUnit 多工程测试,被测试工程一定要生成DLL吗?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-4-23 10:08:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是CppUnit1.12   在VS.net 2003中运用C++

项目中有两个工程,一个测试工程和一个被测工程,在测试工程中调用被测工程的函数进行测试,遇到如下错误:

正在链接...
MsnokTestCase.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall CTestClass::CTestClass(void)" (??0CTestClass@@QAE@XZ) ,该符号在函数 "public: __thiscall CMsnokTestCase::CMsnokTestCase(void)" (??0CMsnokTestCase@@QAE@XZ) 中被引用
MsnokTestCase.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall CTestClass::~CTestClass(void)" (??1CTestClass@@QAE@XZ) ,该符号在函数 "public: virtual __thiscall CMsnokTestCase::~CMsnokTestCase(void)" (??1CMsnokTestCase@@UAE@XZ) 中被引用
Debug/MsnOkTest.exe : fatal error LNK1120: 2 个无法解析的外部命令。

链接器的命令行 已经包含了cppunitd.lib testrunnerd.lib。而且当编译一个不依赖于被测试项目的单元测试没有问题。当加上一个被测试项目的测试,就出现如上错误。

我查了一些文章,说要把被测试项目的dll包含,但我的被测试项目没有生成dll,直接生成了exe,如何包含呢?

谢谢回答!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-4-26 14:03:54 | 只看该作者
如果你的被测项目是EXE,就把CPPUNIT集成到EXE中,不要用两个工程.

CPPUNIT本身就是一个库,只需要在EXE中给他一个入口程序就可以了.虽然这样代码看起来不好,可能需要用编译选项把测试代码屏蔽掉,可是好象也是没有办法的事情.

这是我的办法,不知道还有没有更好的办法了.
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-7-20 12:01:04 | 只看该作者
我的方法是在原工程中用一个新的build configuration(Visual Studio),让这个build生成static lib,然后在测试工程中添加对原工程的dependency就可以了. 这样测试工程就只需要原工程的include文件,而无需源代码文件.  原工程如需要exe, 用另一个build就可以了.
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-8-14 11:57:36 | 只看该作者

回复 #3 cdnewbee 的帖子

我认为在测试工程中把被测工程的源代码和头文件包含进来就可以了。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-3-24 23:09:28 | 只看该作者

回复 1# 的帖子

需要包含三个.DLL库文件的.
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2012-4-30 00:02:08 | 只看该作者
同意三楼
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-23 16:45 , Processed in 0.071178 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表