Continuous integration 与物理设备的连续集成测试
我一直在想,在处理物理设备时,您如何进行CI风格的测试 我想象你有一套测试,和一个可以运行它们的设备池。 此外:Continuous integration 与物理设备的连续集成测试,continuous-integration,Continuous Integration,我一直在想,在处理物理设备时,您如何进行CI风格的测试 我想象你有一套测试,和一个可以运行它们的设备池。 此外: 某些测试可能需要特定的设备型号 某些测试可能需要使用多个设备 哪些CI服务器支持此功能 我仍然对那些通过本机或插件获得部分支持的项目感兴趣,因为我对它的实现方式感兴趣。持续集成使团队能够经常集成和测试他们的工作。自动构建旨在编译、链接和运行单元测试。您希望CI快速运行,尤其是在每次签入时运行CI时。这就是为什么您希望将CI活动限制为仅对构建和单元测试的简单确认。您所问的似乎更多地
- 某些测试可能需要特定的设备型号
- 某些测试可能需要使用多个设备
我仍然对那些通过本机或插件获得部分支持的项目感兴趣,因为我对它的实现方式感兴趣。持续集成使团队能够经常集成和测试他们的工作。自动构建旨在编译、链接和运行单元测试。您希望CI快速运行,尤其是在每次签入时运行CI时。这就是为什么您希望将CI活动限制为仅对构建和单元测试的简单确认。您所问的似乎更多地是沿着质量保证(QA)测试的思路……将QA失败混入您的CI工作会影响开发工作的进展 因此,我认为与CI相关的活动并不依赖于所说的工作最终可能迁移到的物理机器 现在…这并不意味着你不能使用CI编译的包并在最终的目标机器上运行它…但是再次…这实际上被认为是一个独立的活动 这似乎在以下方面得到了加强
请注意,他没有谈到最终的目标设备……只有构建机器。我可以推荐测试管理器,它是Microsoft TFS套件的一部分。除了基于windows的环境外,我没有在许多不同的环境中尝试过它,尽管我知道有许多连接器。对于基于windows的环境,我相信它将满足大多数需求 我在夜间构建中使用它来执行冒烟测试(打开它,看看是否有冒烟),但是如果您希望它成为CI的一部分,您必须小心地保持测试的规模较小,以便在几个小时而不是几天内完成测试
然后,当你有足够好的质量时,如果需要,你可以继续进行回归测试和集成测试。我不会太关注CI系统应该做什么或不应该做什么。相反,我会专注于你试图解决的问题。听起来这个问题是为了促进在多个平台上的开发。您可以使用持续集成的概念,并将其添加到该概念中,以成功地解决该问题。我知道,因为我以前做过 我为需要在4个不同平台(nt、wince、linux arm、linux-x86)上成功编译和测试的代码实现了一个构建系统。CI服务器将:
- 使用linux和winnt构建服务器编译(和交叉编译)
- 然后将编译的测试和支持的lib复制到适当的设备,并执行自动测试运行
- 测试套件完成后,日志将被复制回来(或写入网络安装的fs)
- 如果测试套件成功,我们将标记源代码,并打包libs和可执行文件
我们的构建速度非常快,因为我们对构建依赖项有一个合适的DAG。这允许在平台构建中进行并发编译。每个平台构建也是并行的。因此,部分构建只需几秒钟,完整构建只需约30分钟。我们的构建服务器非常坚固(针对快速编译进行了优化),代码库大小适中(我不记得统计数据)。您能更具体地描述一下物理设备这个术语吗?你说的是物理服务器还是移动设备?我想的更多的是网络连接设备。如果服务器上安装了特定的第三方软件/硬件,您的代码将必须进行测试,那么服务器可能会被计算在内。您对即时反馈循环提出了一些好的观点。也许我应该将其视为其他形式的测试,例如回归。作为连续交付管道的一部分,我们的构建机器在各种环境中执行CI和部署&测试。我更感兴趣的是您的第二个要点:如何针对一组设备执行一组测试,有些是不同类型的。此外,一个测试可能需要多个设备。@Lathargy:这些测试用它要运行的平台进行了“标记”。特定平台上的测试运行程序将仅运行为该平台标记的测试。不过,我们没有跨多个平台进行一次测试运行。