如何在与串口连接的软件上运行集成测试?

时间:2012-03-09 15:16:50

标签: c# testing serial-port integration-testing

我正在用C#.Net开始一个项目,我是否会创建一个Windows服务。此服务将侦听多个串行端口,并将一些数据转发到另一个串行端口。我正在尝试找到一个CI解决方案,它将为我提供端到端的测试。基本上将虚拟串行端口上的数据发送到我的服务,然后监听输出以确保转发正确的数据。

对于输入,我将拥有可以发送到我的测试服务的日志文件,我将创建具有预期结果的文件。使用com0com创建虚拟串行端口对,这应该是可行的。

我还没有真正弄清楚我应该如何构建这些测试,使用哪种语言或框架。我已经知道一些Python,它有很好的串口支持,所以我可以用它来运行我的测试。我需要的是一种控制一套测试的好方法,用Python编写,测试.Net Windows服务。

这是Hudson或CruiseControl.Net可以轻松做到的吗?源代码将托管在Mercurial(HG)存储库中,理想情况下,每次推送到服务器时,我的测试都会运行(只要运行时间可以接受)。

这听起来像个好计划吗?我可以用其他任何方式吗?

1 个答案:

答案 0 :(得分:1)

老实说,如果你想测试你的服务所做的逻辑,我会倾向于模拟C#中的虚拟端口并验证代码中的输入和输出,特别是你想要评估的场景。通过这种方式,您可以将代码保存在一个简单的运行C#单元测试框架中,如NUnit,XUnit等。我不会在等式中引入另一种语言,也不会使其进一步复杂化。

无论您的选择如何,像Hudson / Jenkins这样的东西都适合您的需求,我建议他们使用像CruiseControl.Net这样的东西,因为它的牙齿有点长,并且没有相同的类型围绕它的社区。

如果您有任何其他问题,请拍摄。

干杯, 森