从 VS6 移植到 VS2008 时在不寻常的架构中使用单元测试?

     2023-02-22     286

关键词:

【中文标题】从 VS6 移植到 VS2008 时在不寻常的架构中使用单元测试?【英文标题】:Use unit tests in unusual architecture when porting from VS6 to VS2008? 【发布时间】:2010-09-28 13:45:59 【问题描述】:

我们有一个主应用程序,它最多可以执行 5 个不同的 exe。这些 exe 独立运行并通过 UDP 相互通信。目前没有计划更改此架构。

我们希望将整个事情从 VS6 迁移到 VS2008。 我正在考虑添加单元测试以确保迁移后一切仍然有效。目前,还没有一个单元测试。

所以现在我有几个问题:

哪个单元测试框架适用于 VS6 和 VS2008? CppUnit 似乎可以与两种编译器一起使用,至少我让它运行起来了。 如何在上述架构中实现单元测试?我看到一个问题,我有可执行文件但没有库,所以当时对我来说似乎有点困难 为这两个平台创建单元测试值得付出努力还是您有更简单的建议?

欢迎提出建议、最佳做法和新想法 :)

谢谢

【问题讨论】:

【参考方案1】:

如果他们通过 UDP 进行通信,并且您想确保各个部分之间的集成现在和以后都能正常工作,您可以针对 MSTest 中的 UDP 接口或 VS2008 中的 NUnit 编写自动化测试。

在 VS2008 中编写测试并将接口的输入/验证输出发送到 .exe 应用程序。然后,当您切换到 .NET 时,只需将测试指向 .NET .exe 的新端点并运行它们以验证所有输入和输出是否相同。

我认为您会花更多时间专门为新应用编写单元测试,但要针对外部 UDP 接口编写测试以验证迁移是否成功。

【讨论】:

【参考方案2】:

如果您愿意将每个可执行文件视为“模块”,那么有一种方法可以引入测试而不会过于侵入。 这将创建对许多人来说有点大的模块(当人们谈论模块时,典型的大小是类或源文件),但是您的通信机制提供了一种很好的方式来挂钩测试。

由于您拥有的架构以及您没有现有的代码测试工具这一事实,我将编写一个可以使用 UDP 接口与每个可执行文件隔离通信的测试工具。 执行测试时,只有一个可执行文件在运行(除了测试代码)。测试代码通过侦听它们各自的 UDP 端口并根据测试用例的需要提供响应来模拟其他可执行文件。测试用例还通过向其发送 UDP 请求来刺激被测可执行文件。如果还涉及 GUI/TUI,则可能需要手动执行部分测试。

【讨论】:

将 VS6 MFC 对话框应用程序外观升级到 VS2008

】将VS6MFC对话框应用程序外观升级到VS2008【英文标题】:UpgradeappearanceofVS6MFCdialogapplicationtoVS2008【发布时间】:2011-05-2401:29:58【问题描述】:我正在将一个VS6MFC对话框应用程序更新到VS2008。更新代码很容易,但对话框仍然具有老... 查看详情

将托管 C++ 从 vs2003 移植到 vs2008 的问题

】将托管C++从vs2003移植到vs2008的问题【英文标题】:Problemtoportingmanagedc++fromvs2003tovs2008【发布时间】:2008-10-2915:49:28【问题描述】:试图将我的托管c++项目从vs2003移植到vs2008。我添加了oldSyntax标志。但我仍然收到错误sourceanonotatio... 查看详情

将 WCF 项目从 VS 2008 移植到 2010 时出错

】将WCF项目从VS2008移植到2010时出错【英文标题】:ErrorwhenportingWCFprojectfromVS2008to2010【发布时间】:2011-03-3005:54:24【问题描述】:我尝试在2010下编译后遇到一个奇怪的错误。编译器似乎不理解我的[DataMember]属性:错误CS0246:找不... 查看详情

从 Visual Studio 2005 移植到 2008 或更高版本

】从VisualStudio2005移植到2008或更高版本【英文标题】:PortingfromVisualStudio2005to2008orabove【发布时间】:2015-01-0409:23:51【问题描述】:我有一个使用VisualStudio2005实现的项目。我需要再次编译它,但我不再拥有VisualStudio2005。我只能访... 查看详情

将 VC++ 应用程序移植到 VS2008 的问题

】将VC++应用程序移植到VS2008的问题【英文标题】:IssueinportingVC++applicationtoVS2008【发布时间】:2014-04-1309:34:07【问题描述】:我有一个用VC++开发的应用程序,它使用了一个第三方dll,它也是用VC++开发的它工作正常,当使用dependen... 查看详情

.lib 和 .dll 向后兼容性

....dll的形式提供。我想升级到VS2010,但我还有VS6、VS2005和VS2008的用户。VS2010内置的.lib或.dll能否在VS6、VS2005或VS2008中使用?谢谢!【问题讨论】:还是没有答案,我想知道答案 查看详情

VS6 COM 应用程序崩溃并出现潜在的内存完整性错误

...13:47:30【问题描述】:我们正在将旧的VisualStudio6应用程序移植到Windows7。该应用程序大量使用COM和旧的RogueWave数据库接口。我们遇到了一个非常随机的服务器崩溃,看起来像是某种内存完整性问题。崩溃发生在C 查看详情

在不使用 CMake 的情况下将 ITK(Insight Toolkit)链接到 C++ VS2008 解决方案?

】在不使用CMake的情况下将ITK(InsightToolkit)链接到C++VS2008解决方案?【英文标题】:LlinkingITK(InsightToolkit)toC++VS2008solutionwithoutusingCMake?【发布时间】:2014-10-0918:11:42【问题描述】:问题是否有一种简单直接的方法可以将ITK库包含... 查看详情

如何从 VS2008 中的 C++ MFC 对话框中的日期/时间小部件中提取数据

】如何从VS2008中的C++MFC对话框中的日期/时间小部件中提取数据【英文标题】:HowdoyouextractdatafromaDate/TimewidgetfromaC++MFCdialoginVS2008【发布时间】:2010-04-2019:11:13【问题描述】:这是一个相当基本的问题,但我无法从VS6->VS2008中找... 查看详情

从 Visual Studio C++ 6.0 到 VS 2008?

】从VisualStudioC++6.0到VS2008?【英文标题】:FromVisualStudioC++6.0toVS2008?【发布时间】:2009-04-2205:18:20【问题描述】:我在一家从事VC6上的C++开发的公司工作,我们正在考虑迁移到VS2008。升级有什么好处?有什么缺点?关于迁移项目... 查看详情

是否可以将 IDE 颜色设置从 VS2008 导出到 VS2010?

】是否可以将IDE颜色设置从VS2008导出到VS2010?【英文标题】:IsitpossbiletoexportIDEcolorsettingsfromVS2008intoVS2010?【发布时间】:2011-02-0701:56:03【问题描述】:题目解释的问题【问题讨论】:并避免从头开始配置新环境的乐趣?耻辱!@sh... 查看详情

Openbase SQL 区分大小写的奇怪之处('=' vs. LIKE) - 移植到 MySQL

】OpenbaseSQL区分大小写的奇怪之处(\\\'=\\\'vs.LIKE)-移植到MySQL【英文标题】:OpenbaseSQLcase-sensitivityoddities(\'=\'vs.LIKE)-portingtoMySQLOpenbaseSQL区分大小写的奇怪之处(\'=\'vs.LIKE)-移植到MySQL【发布时间】:2008-12-1812:18:55【问题描述】:... 查看详情

VS2005:如何像 VS6 一样编译项目?

】VS2005:如何像VS6一样编译项目?【英文标题】:VS2005:HowtocompileprojectsasifitwasVS6?【发布时间】:2011-09-1605:18:18【问题描述】:我有一个使用VisualStudio2005构建的项目。源代码也用于另一个使用VisualStudio6构建的项目。这会导致潜在... 查看详情

将复杂项目从 Ant 迁移到 Maven - 如何处理不寻常的文件夹结构?

】将复杂项目从Ant迁移到Maven-如何处理不寻常的文件夹结构?【英文标题】:MigratingcomplexprojectfromAnttoMaven-Howtohandleunusualfolderstructures?【发布时间】:2013-06-1817:29:31【问题描述】:在我的新项目中,我面临一个复杂的基础架构,... 查看详情

在 vs2008 中更新 ActiveX 包装器

】在vs2008中更新ActiveX包装器【英文标题】:UpdatinganActiveXwrapperinvs2008【发布时间】:2011-12-0612:36:44【问题描述】:我相信这对某人来说是一个简单的问题。我们有一些遗留的C++项目仍然使用我们自己的ActiveX控件。在vs6中,当这... 查看详情

vs2008的32位的程序如何移植到64位的系统,具体操作上的问题

...要使用很大的内存读取图像数据,大于4G,因此要将程序移植到64位的系统上,因为64位的系统允许进程调用的内存更大。因此出现两个问题:1、64位系统上每个程序最大允许调用多大内存,不用考虑不同系统的差异,因为我们用... 查看详情

从 C# 调用非托管 C++ VS 6.0 MFC dll

】从C#调用非托管C++VS6.0MFCdll【英文标题】:CallunmanagedC++VS6.0MFCdllfromC#【发布时间】:2009-12-1620:03:20【问题描述】:我有一个在VS6.0中开发的非托管C++MFCdll。我想在我的C#应用程序中使用它。我正在尝试使用PInvoke。这是C++代码://t... 查看详情

vc6 到 vs2010 移植错误

】vc6到vs2010移植错误【英文标题】:vc6tovs2010portingerror【发布时间】:2013-04-1204:34:28【问题描述】:我被困在将我的项目从VC6移植到VS2010的过程中。请任何人都可以帮助我。voidCEdchLoop::ReceiveSdu(UINT8*Sdu,UINT32BitLength,intFn)UINT8*pPdu=Sdu;... 查看详情