In the context of the Pineapple project, a system test is a test that have dependencies to external resources like servers, containers, repositories or infrastructure. Otherwise, system tests are implemented using the same techniques used for integration tests.
Implement the Maven dependencies in the same way that they would be implemented for integration tests.
Implement the test using the same techniques used for integration tests.
The integration test cases are placed in the src/test/java folder.
Integration tests are located in same folders as the unit tests. The tests are separated by the used naming convention, as shown in the next section.
Test classes are named XxxSystemTest where Xxx is the name of the class which is system tested.
Example: The integration test class for the class TestDeployedConfiguration should be named TestDeployedConfigurationSystemTest.
System test classes are annotated with the JUnit category to identify it as system test classes:
@Category(SystemTest.class) public class MySystemTest { }
The purpose is to isolate the execution of system tests since they take longer times and have more elaborate requirements.
If the projects doesn't define any log4j.properties>> in <<<src/java/resources/log4.properties then the pineapple-test-utils project contains a log4j configuration file defined in the directory src/java/resources/log4.properties for use by dependent projects as part of their test configuration.
The test configuration configures Log4j to write log files to ${user.home}/.pineapple/logs/pineapple-.log.