Configuring the Maven in the Eclipse
To use proxy settings in eclipse while using maven, follow these
steps:
·
Open your Eclipse and go to Window -> Preferences.
·
Click on the Browse button of User Settings, and select the settings.xml.
Installing the Camunda Archetype
·
For testing we need to add camunda’s maven archetype. For that navigate
to https://docs.camunda.org/manual/7.12/user-guide/process-applications/maven-archetypes/
- Add archetype catalog (Preferences -> Maven -> Archetypes -> AddRemoteCatalog): https://app.camunda.com/nexus/content/repositories/camunda-bpm/
Creating Camunda Maven Project
·
Create Maven project from archetype (File -> New -> Project..-> Maven -> Maven Project)
·
Select camunda-archetype-servlet-war from the catalog that you created
before.
·
The resulting project look like this , the BPMN files should add into the
src/main/resources
·
Create the java classes at src/test/java
|
|
| package explorer of Eclipse |
|
|
|
Example of Bpmn File |
- Add TestNG to the project .
package com.camunda.camundaDemo; import static org.assertj.core.api.Assertions.assertThat; import static org.camunda.bpm.engine.test.assertions.ProcessEngineAssertions.init; import static org.camunda.bpm.engine.test.assertions.ProcessEngineTests.runtimeService; import static org.junit.Assert.assertEquals; import java.util.HashMap; import org.apache.ibatis.logging.LogFactory; import org.camunda.bpm.engine.RuntimeService; import org.camunda.bpm.engine.TaskService; import org.camunda.bpm.engine.runtime.ProcessInstance; import org.camunda.bpm.engine.task.Task; import org.camunda.bpm.engine.test.Deployment; import org.camunda.bpm.engine.test.ProcessEngineRule; import org.camunda.bpm.extension.process_test_coverage.junit.rules.TestCoverageProcessEngineRuleBuilder; import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; /** * Test case starting an in-memory database-backed Process Engine. */ @Deployment(resources = { "process.bpmn" }) public class ProcessUnitTestCustom { @ClassRule @Rule public static ProcessEngineRule rule = TestCoverageProcessEngineRuleBuilder.create().withDetailedCoverageLogging() .build(); private static final String PROCESS_DEFINITION_KEY = "camundaDemo"; static { LogFactory.useSlf4jLogging(); } @Before public void setup() { init(rule.getProcessEngine()); } RuntimeService runtimeService; ProcessInstance processInstance; TaskService taskService; Task checkWeatherTask; @Test public void testHappyPath() { HashMap<String, Object> hm = new HashMap<String, Object>(); hm.put("weatherOk", true); ProcessInstance processInstance = runtimeService().startProcessInstanceByKey("camundaDemo", hm); processInstance.getProcessDefinitionId(); processInstance.getId(); // Now: Drive the process by API and assert correct behavior by // camunda-bpm-assert assertThat(processInstance.isEnded()).isTrue(); } @Test @Deployment(resources = { "process.bpmn" }) public void testNotHappyPath() { // ProcessInstance processInstance = // runtimeService().startProcessInstanceByKey(PROCESS_DEFINITION_KEY); HashMap<String, Object> hm = new HashMap<String, Object>(); hm.put("weatherOk", false); ProcessInstance processInstance = runtimeService().startProcessInstanceByKey("camundaDemo", hm); processInstance.getProcessDefinitionId(); processInstance.getId(); // Now: Drive the process by API and assert correct behavior by // camunda-bpm-assert assertThat(processInstance.isEnded()).isTrue(); } /*** * Fetch the next immediate test from the task service. * * @param taskService Current Task service. * @return Next Task. */ public Task getNextTask(TaskService taskService) { return taskService.createTaskQuery().singleResult(); } }
Output:
Full Test Coverage :
output of testHappyPath()
Output of testNotHappyPath()
Thankyou sir .. This was very useful topic
ReplyDeleteThankyou :-)
DeleteThe blog is quite insightful, cheers😄
ReplyDeleteThanks a bunch 😊
Delete