By annotating your tests with TestLink test results will be written to a XML file which may be imported to a running Testlink instance as described in the user manual .
Another option is to log the start and end of an executed test to an injected Logger.
You have to annotate your tests and provide either an externalId or a numeric internalId
@Test @TestLink(internalId=1) public void testPassed() { assertTrue(true); // PASSED }
@Test @TestLink(externalId="PROJECT-1") public void testExternalId() { assertTrue(true); // PASSED }
Tests annotated with Ignore will be marked as BLOCKED as well as tests with failing assumptions.
@Test @TestLink(internalId=2) @Ignore("Just ignore this") public void testIgnored() { assertTrue(true); // BLOCKED as test is ignored. }
@Test @TestLink(externalId="ASSUMPTION_FAILED") public void testWithFailingAssumption() { assumeTrue(false); // BLOCKED as assumption failed. }
Failing tests or tests in error are marked as FAILED.
@Test @TestLink(internalId=5) public void testFailed() { assertTrue(false); // FAILED }
You have to configure the surefire plugin to use the additional TestLinkXmlRunListener or TestLinkLoggingRunListener (For more information, take a look into the classes' documentation above.). As can be seen below, username and file-location for the result file or the logger name may be provided as system properties.
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.10</version> <dependencies> <dependency> <groupId>net.oneandone.testlinkjunit</groupId> <artifactId>tljunit-surefire</artifactId> <version>3.0.3-SNAPSHOT</version> </dependency> </dependencies> <configuration> <properties> <property> <name>listener</name> <value>net.oneandone.testlinkjunit.tljunit.TestLinkXmlRunListener,net.oneandone.testlinkjunit.tljunit.TestLinkLoggingRunListener </value> </property> </properties> <systemPropertyVariables> <testlink.results>target/my-testlink.xml</testlink.results> <testlink.userName>memyselfandi</testlink.userName> <teslink.loggername>MY_LOGGER</teslink.loggername> </systemPropertyVariables> </configuration> </plugin> </plugins> </build>
Now running mvn test will run your tests and put the resulting TestLink XML file into target/my-testlink.xml using memyselfandi as name of the user who executed the test run.
To run a test from Eclipse, add a main method which will collect the tests:
package net.oneandone.testlinkjunit.eclipse; import static org.junit.Assert.assertTrue; import java.io.FileNotFoundException; import net.oneandone.testlinkjunit.tljunit.TestLink; import net.oneandone.testlinkjunit.tljunit.TestLinkXmlRunListener; import org.junit.Test; import org.junit.runner.JUnitCore; public class EclipseIT { @Test @TestLink(externalId="ECLIPSE_TEST") public void test() { assertTrue(true); } public static void main(String[] args) throws FileNotFoundException { final JUnitCore core = new JUnitCore(); core.addListener(new TestLinkXmlRunListener()); core.run(EclipseIT.class); } }