About MUnit Support for Domain Based Applications
MUnit allows you to test applications that run referencing a Mule Domain.
MUnit support for domain based applications is designed to require the minimum change of code from your end to implement it. However if your Mule Application depends on a Mule Domain, there are a few considerations to take into account:
When working in Anypoint Studio, your Mule Domain must always be part of your workspace.
Your Folder must have the same name as your artifact.
Regardless if it’s a Mule application or a Mule domain if, the folder in your workspace containing your Mule project must have the same name as the artifact ID defined in your pom file.
For example, if your mule project’s artifact Id is:
Then, the folder in your Studio workspace must be named
This is case sensitive. If your folder is named
Mule-Project, MUnit won’t recognize your project.
Your resources need to be installed in an M2 repository.
You need to handle domains and mule apps as regular dependencies. Setting them as an artifact requires for them to be installed in an .M2 repository.
Your resources need to be in your test suite pom file.
If your Mule domain project looks like this:
1 2 3 4 5 6
<modelVersion>4.0.0</modelVersion> <groupId>org.mule.app</groupId> <artifactId>domain-project</artifactId> <packaging>mule-domain</packaging> <version>1.0.0-SNAPSHOT</version> <name>Domain domain-project Project</name>
Then your dependency in your Mule application should look like this:
1 2 3 4 5 6 7
<dependency> <groupId>org.mule.app</groupId> <artifactId>domain-project</artifactId> <version>1.0.0-SNAPSHOT</version> <classifier>mule-domain</classifier> <scope>provided</scope> </dependency>
Remember to keep consistency with
<version>artifact in your repository and in your test suite’s pom file