Continuous integration tests for OSGP
Switch branches/tags
slave1-development-1117 slave1-development-1115 slave1-development-924 slave-tmp-development-1109 slave-tmp-development-1108 slave-tmp-development-1107 slave-tmp-development-1106 slave-development-25 slave-development-15 release-4.30.2-135 release-4.30.2-134 release-4.30.1-133 release-4.30.1-132 release-4.30.1-131 release-4.30.0-130 release-4.30.0-129 release-4.30.0-128 release-4.29.0-127 release-4.29.0-126 release-4.28.0-125 release-4.28.0-124 release-4.27.0-122 release-4.27.0-121 release-4.26.1-123 release-4.26.0-120 release-4.26.0-119 release-4.25.0-118 release-4.25.0-117 release-4.24.0-116 release-4.24.0-115 release-4.24.0-114 release-4.23.0-113 release-4.23.0-112 release-4.23.0-111 release-4.23.0-110 release-4.22.0-109 release-4.22.0-108 release-4.22.0-107 release-4.21.0-106 release-4.21.0-105 release-4.21.0-104 release-4.20.0-103 release-4.20.0-102 release-4.20.0-101 release-4.19.0-100 release-4.19.0-99 release-4.18.0-98 release-4.18.0-97 release-4.17.1-96 release-4.17.1-94 release-4.17.0-93 release-4.16.0-85 release-4.16.0-84 release-4.15.0-83 release-4.15.0-82 release-4.15.0-81 release-4.14.1-80 release-4.14.1-79 release-4.14.0-78 release-4.14.0-77 release-4.13.0-76 release-4.13.0-75 release-4.12.3-74 release-4.12.3-73 release-4.12.3-72 release-4.12.3-71 release-4.12.2-69 release-4.12.2-68 release-4.12.0-67 release-4.12.0-65 release-4.12.0-61 release-4.11.0-60 release-4.11.0-59 release-4.11.0-58 release-4.10.2-57 release-4.10.1-55 release-4.10.0-51 release-4.1.0-33 release-4.1.0-32 release-3.10.0-30 release-3.10.0-27 release-3.10.0-25 release-3.5.0-15 release-3.4.0-14 release-3.3.0-13 release-3.3.0-11 release-3.2.0-10 release-3.2.0-9 release-3.2.0-8 release-3.2.0-7 release-3.1.0-6 release-3 release-2 pr-12 master-development-1114 master-development-1113 master-development-1112 master-development-1111 master-development-1110 master-development-1073
Nothing to show
Clone or download
renevanr Merge pull request #445 from OSGP/SLIM-1542-Firmware-version-verifica…
…tion

SLIM-1542 Adds tests for storing the firmware versions from a device
Latest commit 96b8de2 Oct 15, 2018
Permalink
Failed to load latest commit information.
Platform @ ae37f60 OC-441 da and microgrids RtuDevice and Task were entities pointing to… Oct 9, 2018
Protocol-Adapter-DLMS @ 6e05514 OC-441 da and microgrids RtuDevice and Task were entities pointing to… Oct 9, 2018
Protocol-Adapter-IEC61850 @ 925d652 OC-441 da and microgrids RtuDevice and Task were entities pointing to… Oct 9, 2018
Protocol-Adapter-OSLP @ 8fe92fd OC-441 da and microgrids RtuDevice and Task were entities pointing to… Oct 9, 2018
Shared @ cbb45ba OC-441 da and microgrids RtuDevice and Task were entities pointing to… Oct 9, 2018
certificates FLEX-4287 ~ Renews the test-org client certificate Apr 30, 2018
cucumber-tests-core Adapted version to 4.31.0-SNAPSHOT Sep 5, 2018
cucumber-tests-execution Adapted version to 4.31.0-SNAPSHOT Sep 5, 2018
cucumber-tests-platform-common FLEX-4528 ~ Refactors test class Oct 8, 2018
cucumber-tests-platform-microgrids OC-441 da and microgrids RtuDevice and Task were entities pointing to… Oct 9, 2018
cucumber-tests-platform-publiclighting FLEX-4528 ~ Processes review comments and reverts last commit. Oct 7, 2018
cucumber-tests-platform-smartmetering SLIM-1542 Adds tests for storing the firmware versions from a device Oct 5, 2018
cucumber-tests-platform Merge pull request #445 from OSGP/SLIM-1542-Firmware-version-verifica… Oct 15, 2018
jenkins/pipeline Removes 'DESTROY_SERVER' step. Aug 6, 2018
parent-integration-tests Adapted version to 4.31.0-SNAPSHOT Sep 5, 2018
.gitignore ZS-232 ~ Updates gitignore Sep 11, 2017
.gitmodules SLIM-1542 Update Platform to development Oct 15, 2018
CONTRIBUTING.md Added link to Jira board (#84) Oct 19, 2016
LICENSE Appendix removed May 18, 2015
README.md Removes build status badge. Jun 5, 2018
console-test-result-rules OC-374 Fixes code-coverage dir and adds console test result rules Jul 20, 2017
pom.xml Adapted version to 4.31.0-SNAPSHOT Sep 5, 2018
runMicrogridsTestsAtRemoteServer.sh Updated scripts with additional parameters for cucumber options Aug 2, 2017
runPubliclightingTestsAtRemoteServer.sh Updated scripts with additional parameters for cucumber options Aug 2, 2017
runSmartMeteringTestsAtRemoteServer.sh Updated scripts with additional parameters for cucumber options Aug 2, 2017
runTestsAtRemoteServer.sh Fixes typo. Nov 20, 2017

README.md

Integration Tests for OSGP Components and Protocol Adapters.

Component Description

This repository contains all the tests to verify the platform. Tests are written in cucumber.

  • Cucumber
    • cucumber-tests-core: A project with some basic stuff, not directly related to OSGP, but needed in order to run the tests.
    • cucumber-tests-execution: A project which contains some common classes to be used to make an executable jar, needed when we start the tests on a testsystem itself during a build.
    • cucumber-tests-platform: The core test project with basic OSGP steps
    • cucumber-tests-platform-common, The test project where all common related platform tests are put.
    • cucumber-tests-platform-publiclighting, The test project where all publiclighting related platform tests are put.
    • cucumber-tests-platform-microgrids, The test project where all microgrids related platform tests are put.
    • cucumber-tests-platform-smartmetering, The test project where all smartmetering related platform tests are put.
  • Shared, Platform and Protocol-Adapter-*, The components under test
Running Cucumber integration tests

First make sure that you have OSGP running. Note that you don't need to run the web-device-simulator (OSLP simulator) because it will use the same port as the mockserver used within the test projects.

You can run the automatic tests by running mvn verify -DskipITs=false from the commandline.

Open smart grid platform information and news

High-level project information and news can be found on the open smart grid platform website:

Open smart grid platform detailed documentation:

Open smart grid platform issue tracker:

How to create and use the automatic tests.

Why

Automatic tests are created in order to garantee that the software doesn't break with new functionality or corrected bugs. At the time of writing this readme it is not yet in place, but it is meant to have a nightly build on the development branch, which will also startup a test server during the build, deploy the latest software on it and run the automatic tests against it. Via this way, each morning it is visible if the development branch is functionally working. Alternatively each developer/tester can run the automatic tests on his own environment.

How to implement.

There are a few rules on how to implement the automatic tests.

  • When writing the feature files, always meantion the Feature on top and add a little description like "As a ..., I want to ..., In order to". Via this way you think a little more about what you are going to do.
  • When writing the scenarios, keep in mind that each scenario should stand on its one. Don't ever make a scenario dependent on another.
  • When writing the scenarios, please try to write functional scenarios. A person with less technical background should be able to read those scenarios as well. Also have a look at the already created scenarios for reference.
  • When writing the scenario steps, please try to create the steps as generic and reusable as possible. e.g. use tables for parameterizing the steps.
  • Before the test run, the databases are cleared (not complete yet, but please add the necessary commands to the ScenarioHooks.java) and filled with the default data like a test organization which is used for sending the automatic test requests.
  • Before each test scenario the database is cleared as well except for the default data (provisioned in the ScenarioHooks.java).
  • Each time you implement new functionality or solve bugs, make sure you execute the automatic tests.

Additional recommendations

  • use mvn tidy:pom
  • use mvn versions:display-dependency-updates
  • use mvn versions:display-plugin-updates
  • use mvn dependency:tree -DignoreNonCompile