【问题标题】:How to run integration testing on software interfacing with serial ports?如何对与串口连接的软件进行集成测试?
【发布时间】:2012-03-09 15:16:49
【问题描述】:

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

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

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

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

这听起来像是一个好计划吗?我还有其他方法可以做到这一点吗?

【问题讨论】:

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


    【解决方案1】:

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

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

    如果你还有什么问题,那就拍吧。

    干杯, 内森

    【讨论】:

    • 我还将使用 Nunit 运行其他测试,包括模拟我的串行端口。但是使用复杂的二进制数据作为输入,我想运行完整的端到端测试。我将把它交给其他人以供将来维护的事实意味着我想要一种“简单”的方式来添加更多这些测试。
    • 端到端测试比单元测试更重要。模拟端口接口也是一个好主意,但不适用于使用真实数据进行端到端测试。
    猜你喜欢
    • 2011-03-08
    • 2020-11-08
    • 2014-08-30
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 2014-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多