- Based on TestNG testing framework.
- Launched automatically or on-demand from application (Test classes can be updated and relaunched).
- Can easily simulate users actions.
- Results are displayed and interpretable in specific editor.
How to test
Step 1: Add 'org.adichatz.testing' plugin
org.adichatz.testing plugin must be added to application environment.
|
To overcome this problem, follow instructions below:
A new window is open, then:
|
Remark:
An other way is to add missing plugins inside {plugin}/{projectName}.product file:
- com.google.inject,
- org.apache.ant.
If you decide to add missing plugins inside {plugin}/{projectName}.product file, thing to delete these lines before exporting project.
Step 2: Create a Test class
A test case is composed of one or several Java classes with one ore several annoted methods.
Below, a simple Test class is described.
Create java class MyFirstTest.java in package org.mycompany.myproject.testing.
package org.mycompany.myproject.testing; import org.adichatz.engine.e4.core.PartCore; import org.adichatz.engine.e4.part.BoundedPart; import org.adichatz.engine.e4.resource.E4SimulationTools; import org.adichatz.engine.simulation.SimulationTools; import org.adichatz.testing.AdiAssert; import org.adichatz.testing.TestingTools; import org.testng.annotations.Test; public class MyFirstTest { @Test public void test() { // Select Option queriesMenus/filmQuery in navigator "groupNavigator" and return a part. BoundedPart filmQueryPart = E4SimulationTools.handleNavigatorOpenPartItem("groupNavigator", "queriesMenu", "filmQUERY"); // check that part is active. AdiAssert.isPartActive(filmQueryPart); TestingTools.testInfo("QueryForm with query 'filmQUERY' is active."); PartCore filmQueryCore = filmQueryPart.getGenCode(); // Launch query in filmQuery part. SimulationTools.handleContextMenuAction(filmQueryCore, "tableCM:contextMenu", "launchQueryAction"); } }
Remarks:
This test opens a QueryForm editor and launch a query to supply rows to the Table Controller contained in the editor.
- Line 12: @Test annotation points out a method to be launched by TestNG.
- Line 15: Simulates selection of Query Film in navigator.
- Line 22: Executes launchQueryAction item in context menu.
A more complex Test class which checks databinding between Entity editors could be seen here.
Step 3: Create a file $projectDirectory/resources/xml/AdichatzTesting.xml as follow
You need to add an simple entry in file $projectDirectory/resources/xml/AdichatzTesting.xml as shown below:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <adichatzTestingTree expanded="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.adichatz.org/xsd/v0.9.1/testing/adichatzTestingTree.xsd"> <suite id="myFirstSuite" label="Suite example" launchOnStartup="false" expanded="true"> <test id="myFirstTest" label="my first test" testURI="bundleclass://myproject/org.mycompany.myproject.testing.MyFirstTest"/> </suite> </adichatzTestingTree>
Remarks:
A testing
- Line 1: <adichatzTestingTree expanded=“true”… means: A testing menu is added to existing navigators at runtime. The menu is expanded.
- Line 2: A suite test case is created. The suite is expanded and is not launched automatically during the application startup process.
Step 4: Execute and reexecute tests
To execute or reexecute a test case, click on the corresponding item (my first test).
- when a test fails, a specific editor was created for reporting test results and is automatically open.
- Changes done on Test classes in Eclipse IDE are directly considered without relaunching the application.
Step 5: Show results
A specific editor was created for reporting test results. By default, it is automatically open when a test fails.
- A tree is used to report results.
- Level Run: Displays the label of the suite or of the used testNG xml file.
- Level Suite: Displays onStart event with main features: duration, sucesses, failures….
- Level Class: Display label for class or onFinish event.
- Level Test: Reports main features or the Test (a method with annotation @Test): duration, sucesses, failures…
Tools
Testing menu provides Testing tools options</wrap> as shown below:
- Testing result manager: Opens and editor for reporting test results.
- Display register for active editor: Display in the consol part all the entries of register for the active editor. These entries are used in Test class for naming controllers.
- Refresh testing menu: Refresh current Testing menu. Changes made on IDE can be seen without having to quit the application.
.