Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在与串口接口的软件上运行集成测试?_C#_Testing_Serial Port_Integration Testing - Fatal编程技术网

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

C# 如何在与串口接口的软件上运行集成测试?,c#,testing,serial-port,integration-testing,C#,Testing,Serial Port,Integration Testing,我将在C#Net中启动一个项目,我将创建一个windows服务。此服务将侦听多个串行端口,并将部分数据转发到另一个串行端口。我正试图找到一个CI解决方案,它将为我提供端到端测试。基本上,将虚拟串行端口上的数据发送到我的服务,然后监听输出以确保转发正确的数据 对于输入,我将拥有可以发送到测试中的服务的日志文件,并且我将创建具有预期结果的文件。使用创建虚拟串行端口对应该是可行的 我还没有真正弄清楚应该如何构造这些测试,使用哪种语言或框架。我已经了解一点Python,它有很好的串行端口支持,所以我可以

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

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

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

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


这听起来是个好计划吗?还有其他方法吗?

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

不管你选择什么,像Hudson/Jenkins这样的东西都会适合你的需要,我会推荐它们而不是像CruiseControl.Net这样的东西,因为它已经有点长了,而且周围没有相同类型的社区

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

干杯,
Nathan

我还将使用Nunit运行其他测试,包括模拟我的串行端口。但是使用复杂的二进制数据作为输入,我希望运行完整的端到端测试。事实上,我将把它交给其他人进行将来的维护,这意味着我希望有一种“简单”的方法来添加更多这些测试。端到端测试甚至比单元测试更重要。模拟端口接口也是一个好主意,但不适合使用真实数据进行端到端测试。