Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This module allows you to automate test and to run workflows with or without starting-up the user interface. As such, it can also be used to automate tasks in stand-alone systems, for example in combination with the windows task scheduler (or cron in linux systems).

The workflow test runner can also be integrated into a CI/CD pipeline. For more information, please see: Workflow Test Runner in Azure Devops

Configuration


fig1: layout of the workflowtestrun configuration

...

  • date date as yyyy-MM-dd
  • time the time of day as HH:mm:ss


testReport

Since 2021.01. It is possible to generate a JUnit XML compliant XML report with the test results. Currently only junitXml is supported. This can typically be used in a build pipeline like Azure Devops or Teamcity.

For example:

Code Block
<testReport dir="%REPORT_DIR%">
    <reportType>junitXml</reportType>
</testReport>

In case one of the activities fail, a failed test will be reported.         

Activities

The activities of the workflow test run configuration that will be carried out. You can use activities in any order you like, they will be executed as ordered in your configuration file.

...

  • workflowId: identifier of workflow to run
  • systemTime: (optional) overruling system time for running workflow

 


ExportTimeSeriesActivity

Exports the given time series to PI formatted file.

Since 2021.01 the version of the PI format can be specified using the piVersion element.

attributes:

  • exportFile path that specifies the location and name of the export file
  • timeSeriesSet time series set as specified here

...

Refreshes datastore. Empty element.

ContainsActivity

Search for the presence of text in a file

...

  • searchFile file to search through
  • searchString array of strings to search for. All specified strings have to occur for the activity to complete successful.
  • emptyFile check if file is empty

NotContainsActivity

Search if text doesn't occur in a file

attributes:

  • searchFile file to search through
  • searchString array of strings to search for. If any of these search strings appear in the file, the activity fails.
  • emptyFile check if file is NOT empty

SleepActivity

Let process sleep for configured amount of milli seconds 


Workflow test runs can either be started from within a FEWS stand-alone application, or within a JUnit test.

...

Workflow test runs can be started from the command line. To do so one must configure a Region as they would for a Stand Alone system.

Before 2014.02

Before 2014.02, configure in the bin directory the 'Region.exe' and 'Region.jpif' files. For the JPIF file some adaptation must be made. Here is an example:

Code Block
languagebash
..\jre
-mx256m
-cp
$JARS_PATH$
nl.wldelft.fews.system.workflowtestrun.WorkflowTestRun
Region_Name
..\path_to_your_config_test_file.xml

Before 2018.02

From 2014.02 to 2017.02, this was done via an ini file:

Code Block
languagebash
#Delft-FEWS ini file
main.class=nl.wldelft.fews.system.workflowtestrun.WorkflowTestRun
classpath.1=*.jar

#Java Runtime jvm.dll location
## for 32 bits use ../jre/bin/client/jvm.dll
vm.location=../jre/bin/client/jvm.dll
## 64 bits use ../jre/bin/server/jvm.dll
##vm.location=../jre/bin/server/jvm.dll

vmarg.1=-Xms512m
vmarg.2=-Xmx1024m

#location of the bin dir has changed in 2017.01 (was .)
working.directory=../bin

#region_home directory - <region_home> to be replaced with actual region home directory
arg.1=../<region_home>
arg.2=..\path_to_your_config_test_file.xml

 

Check the attachment workflow_test_run for an example. 

Since 2018.02

Since 2018.02, the The required flags should be set when calling FEWS from the command line. This can be done conveniently with the simple DOS batch file below. Note that one should at minimum specify the root folder where the FEWS bin is stored, the regionHome directory, the patch, and the WorkflowTestRun file that is to be executed.

...