Architecture ESB应用程序和持续集成
我将Junit和CI用于纯基于Java的应用程序,效果非常好。Junit用于通过传递操作/方法的输入值(参数)来单元测试操作/方法的案例,并期望返回值应与标准匹配。通常,我们测试junit是为了一个纯粹的基于java的应用程序,该应用程序具有控制器、服务和DAO层。有时使用模拟对象来模拟/代理第三方应用程序 现在,我已经在Mule上构建了ESB应用程序,它有http连接器、带raml的api工具包、调度器、连接到sfdc的云、ActiveMQ、smtp、连接到多个DB的JDBC、datampaper、datewave和continues 最后,Mule应用程序是一个集成了Java/Groovy和其他一些技术的xml文件。Java组件仅占应用程序构建组件的10%(有时甚至没有) 我正在计划与詹金斯的持续整合。为此,我需要运行Junit框架对应用程序进行回归测试。我希望Munit不会与CI一起工作,因为Munit必须与Studio一起执行,并且它是用xml文件编写的 由于构建的应用程序不是完整的基于Java的应用程序(在该应用程序中,我们可以为操作及其返回值编写单元测试断言),因此观察到以下问题:Architecture ESB应用程序和持续集成,architecture,continuous-integration,mule,Architecture,Continuous Integration,Mule,我将Junit和CI用于纯基于Java的应用程序,效果非常好。Junit用于通过传递操作/方法的输入值(参数)来单元测试操作/方法的案例,并期望返回值应与标准匹配。通常,我们测试junit是为了一个纯粹的基于java的应用程序,该应用程序具有控制器、服务和DAO层。有时使用模拟对象来模拟/代理第三方应用程序 现在,我已经在Mule上构建了ESB应用程序,它有http连接器、带raml的api工具包、调度器、连接到sfdc的云、ActiveMQ、smtp、连接到多个DB的JDBC、datampap
此外,ESB应用程序的构建是为了运行不同的流程来集成在一起。对于基于ESB的应用程序,将CI与Junit一起使用是否是好的体系结构建议?或者在没有CI和Junit测试的情况下在服务器上构建、手动测试和部署应用程序?Mule ESB完全基于Java/Spring。如果您将项目设置为具有适当依赖性的maven项目,则可以在Studio之外运行munit测试 它实际上包含在高级培训课程中。
Mule ESB完全基于Java/Spring。如果您将项目设置为具有适当依赖性的maven项目,则可以在Studio之外运行munit测试 它实际上包含在高级培训课程中。
您似乎提出了一些关于为Mule ESB应用程序实现持续集成的问题。我将尽力陈述并回答您的每一个问题。如果我还不明白,请更新问题,我会相应地修改答案 我的CI过程是仅限于基于junit的测试,还是也可以使用MUnit测试 如果使用maven自动化构建,则可以在CI过程中包括基于MUnit的测试和基于junit的测试。要运行MUnit测试,请将以下插件添加到POM中:
<plugin>
<groupId>com.mulesoft.munit.tools</groupId>
<artifactId>munit-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<id>test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
com.mulesoft.munit.tools
基类。熟练地开发这些测试似乎需要一段时间,并且有在几个不同应用程序上进行测试的经验。一旦你掌握了诀窍,并建立了一套你喜欢的支持java库,我希望这些库所用的时间与“纯java”中的等效库一样长
单元测试大多是使用测试流或子流以及特定的输入消息编写的。这些似乎与使用junit进行“纯java”的开发所花费的时间差不多。学习过程也相当快:我希望使用TDD的java开发人员能够在几天内对Mule开发有相当的了解
有没有办法测量我的Mule应用程序测试套件的代码覆盖率
我还没有看到任何方法来衡量您的CI流程中的覆盖率。但是,Anypoint Studio在开发时是可用的
考虑到编写自动化测试所需的时间,以及缺乏设计时重用,将时间花在手动测试上而不是创建自动化测试套件和实现CI流程是否更明智
没有。我已经在许多Mule开发项目和六个团队中实施了与自动化测试的持续集成,但这些团队并没有100%热情地响应。:)您在最初几个项目中花费的额外开发时间很快就被忘记了,而在软件的生命周期中,这些好处仍然存在。您似乎提出了一些关于为Mule ESB应用程序实现持续集成的问题。我将尽力陈述并回答您的每一个问题。如果我还不明白,请更新问题,我会相应地修改答案
我的CI过程是仅限于基于junit的测试,还是也可以使用MUnit测试
如果使用maven自动化构建,则可以在CI过程中包括基于MUnit的测试和基于junit的测试。要运行MUnit测试,请将以下插件添加到POM中:
<plugin>
<groupId>com.mulesoft.munit.tools</groupId>
<artifactId>munit-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<id>test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
com.mulesoft.munit.tools
基类。熟练地开发这些测试似乎需要一段时间,并且有在几个不同应用程序上进行测试的经验。一旦你掌握了诀窍,并建立了一套你喜欢的支持java库,我希望这些库所用的时间与“纯java”中的等效库一样长
单元测试大多是使用测试流或子流以及特定的输入消息编写的。这些似乎与使用junit进行“纯java”的开发所花费的时间差不多。学习过程也相当快:我希望使用TDD的java开发人员能够在几天内对Mule开发有相当的了解
有没有办法测量我的Mule应用程序测试套件的代码覆盖率
我还没有看到任何方法来衡量您的CI流程中的覆盖率。但是,Anypoint Studio在开发时是可用的
考虑到时间r