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

本文关键字:软件 运行 集成测试 接口 串行端口 | 更新日期: 2023-09-27 18:27:12

我正在C#.Net中启动一个项目,如果我要创建一个windows服务的话。这个服务将监听几个串行端口,并将一些数据转发到另一个串行端口。我正在努力寻找一个CI解决方案,它将为我提供端到端测试。基本上是将虚拟串行端口上的数据inn发送到我的服务,然后监听输出以确保转发正确的数据。

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

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

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

这听起来是个好计划吗?我还有别的办法吗?

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

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

不管你的选择如何,像Hudson/Jenkins这样的东西都适合你的需求,我会推荐它们而不是CruiseControl.Net这样的东西,因为它有点长,而且周围没有相同的社区。

如果你还有其他问题,就开枪吧。

干杯,Nathan