【发布时间】:2017-01-18 13:12:46
【问题描述】:
我有一个 Maven POM 项目,其中包含许多模块。
其中一个是其他一些模块使用的 REST Web 服务。 这个模块是一个独立的可执行文件。
我想要实现的是让 Web 服务在所有其他模块之前构建和运行。
我知道只需更改 pom 文件中模块的顺序,我就可以让模块先于其他模块构建,但是在构建其余模块之前如何运行它呢?
我需要运行它,以便我可以执行包含在其余模块中的一系列测试。
我尝试实现这种功能的原因是因为我最终要做的是让项目在 Jenkins 上正确构建和测试。
【问题讨论】:
-
如果您的测试需要一个正在运行的 REST 服务,他们应该启动它(或确保它正在运行)。这是一个测试先决条件。
-
我不确定我是否理解您的建议。可能我也必须更新我的问题。该服务是一个独立的可执行文件。测试将测试他们是否可以从服务中获得预期的结果。还会有一个测试,该服务将无法正常工作,但在这种情况下,我想我可以使用一个错误的 url?
-
你的 REST 部分的测试应该在 REST 模块中实现,或者作为单元测试或集成测试......通过订购模块来定义顺序是完全错误的..更好地定义模块之间的依赖关系,这会导致构建顺序...
-
依赖项确实存在。 REST 服务也可以有自己的测试,但我仍然需要测试我是否真的能够检索和处理其他模块中的数据。此外,为了正确执行其他模块,还需要检索到的数据。如果没有正在运行的 Web 服务,我将无法测试其他模块。不幸的是,该项目太大而无法发布有关其内部运作的详细信息。