【问题标题】:How to test Server-Client (Java/Maven)如何测试服务器-客户端 (Java/Maven)
【发布时间】:2013-05-15 12:46:56
【问题描述】:

我有一个简单的游戏,它由两个项目组成:客户端和服务器。现在我想测试它们是否正确交互。
设置是:一个 Maven 父项目,服务器/客户端作为子模块。

我现在不知道如何测试交互:我是否能够在 junit 测试或集成测试中以某种方式(究竟如何?)启动这两个项目?这样我就可以收听一个项目的输出,验证它并将其发送给另一个?还是我应该走另一条路?

【问题讨论】:

    标签: java maven testing client-server


    【解决方案1】:

    对于集成测试,请创建一个单独的 pom 添加两个项目作为测试依赖项。然后在测试开始前使用 testng beforeclass hooks 或 maven failsafe plugin hook 启动服务端,测试结束后关闭服务端。

    【讨论】:

      【解决方案2】:

      这听起来像是一个集成测试的好案例。我会这样做:

      • 创建名为 IntegrationTests 的第三个 maven 模块
      • 使用 maven 配置文件 integrationtests 并使用 -Dintegrationtests 激活它
      • 在新模块中引入客户端和服务器模块作为依赖项
      • 使用 JUnit(@Before、@Test 等)编写我的集成测试

      正如 Evgeniy 建议的那样,您当然可以将集成测试放在现有模块之一中,而我的建议是将其拆分到第三个模块中。

      如果您需要有关如何使用 maven 配置文件进行集成测试的帮助,只需在 Google 上搜索一下,或者随时询问您是否有具体问题。

      祝你好运。

      【讨论】:

      • 谢谢,我关注了docs.codehaus.org/display/MAVENUSER/…,但它只是用服务器插件描述的。我怎样才能开始自己的事业?
      • 您正在那里阅读有关maven-failsafe-plugin 的信息。要使用它或任何其他插件,只需在您的 pom.xml 中的 <build><plugins> 下配置它,然后构建您的 maven 项目 (clean install)。我自己,我只使用maven-surefire-plugin,因为它会在测试中断时失败。无论哪种方式,很高兴能够使用-Dintegrationtests 指定是否运行集成测试。
      【解决方案3】:

      通常您从测试启动服务器并从测试发送请求以模拟客户端行为并检查服务器响应是否符合您的预期。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-01
        • 1970-01-01
        • 2019-05-09
        相关资源
        最近更新 更多