SKF¶
This plugin provides functions that handle SKF tests. It has been validated with SKF 1.14.0 and should work with any recent version of SKF.
It can be used directly in a workflow, or indirectly via generators (such as those providing access to test case managers).
A working SKF installation must be available in the targeted execution environments.
The functions have an skf category prefix.
Functions¶
skf/skf@v1¶
Run an SKF test suite.
Inputs¶
The function has the following inputs:
- 
root-project(required)Path to the root SKF folder (which contains the pom.xmlfile).
- 
tests(optional)Specifies a list of scripts, each script having a scriptentry specifying the path of the script to run from the default ecosystem (‘tests’).Each scriptitem may also have adataentry with a series ofparams: valueselements.If testsis not specified, all test cases in the root project are executed.
- 
data(optional)Specifies parameters to pass to a specific test script. 
- 
global-parameters(optional)Specifies global parameters. 
- 
testsuite(optional)Specifies the path from the root-projectto a whole test suite defined in an existing JSON file in SKF format. If this parameter is used, no other optional parameter will be taken into account.
Reports¶
The function generates the following reports:
- 
*.xmlSurefire reports (XML). All XML files in the {root_project}/target/squashTA/surefire-reportsfolder are attached.The surefire reports have the application/vnd.opentestfactory.skf-surefire+xmlcontent type.
- 
html-reports.tarA TAR archive. Contains all files present in the {root_project}/target/squashTA/html-reportsfolder.
- 
*.txtReports formatted as text. All TXT files in the {root_project}/target/squashTA/surefire-reportsfolder are attached.
Examples¶
This first example runs all tests in the foobar test directory:
- uses: skf/skf@v1
  with:
    root-project: foobar
This second example runs the foo and bar test scripts in the foobar test
directory and passes tests and global-parameters:
- uses: skf/skf@v1
  with:
    root-project: foobar
    tests:
      - script: foo
        data:
          test_param1: test_value1
          test_param2: test_value2
      - script: sub_ecosystem/bar
        data:
          test_param1: test_value1
          test_param2: test_value2
    global-parameters:
      global_param1: global_value1
      global_param2: global_value2
This third example runs all tests defined in the JSON test suite file:
- uses: skf/skf@v1
  with:
    root-project: foobar
    testsuite: path to the JSON file from the root project
skf/execute@v1¶
An execute function for use by generators.  Runs a test suite or a test case in a test
suite.
Test Reference format¶
The test reference format used by skf/execute@v1 is as follows:
- {root_project}/{ecosystem}[.{sub_ecosystems}]#{script}
Where:
- {root_project}(required): path to the root SKF folder (which contains the- pom.xmlfile) on the source repository.
- {ecosystem}(required): default test ecosystem of the SKF project (always- tests).
- {sub_ecosystems}(optional): child tests ecosystems may be added, separated by- .(e.g.- fooor- foo.bar).
- {script}(required): name of the test script to run, with its- .taextension.
Inputs¶
The function has the following inputs:
- 
test(required)The test reference. 
Reports¶
The function generates the following reports:
- 
TEST-{ecosystem}{sub_ecosystems}.xmlSurefire reports (XML). The Surefire reports come from the {root_project}/target/squashTA/surefire-reports/folder. They have theapplication/vnd.opentestfactory.skf-surefire+xmlcontent type.
- 
html-reports.tarA TAR archive. Contains all files present in the {root_project}/target/squashTA/html-reportsfolder.
- 
{ecosystem}{sub_ecosystems}.txtReports formatted as text, as found in the {root_project}/target/squashTA/surefire-reportsfolder.
- 
{ecosystem}{sub_ecosystems}-output.txtOutput reports formatted as text, as found in the {root_project}/target/squashTA/surefire-reportsfolder.
Examples¶
In this first example, the pom.xml file is expected to be in the project folder.
The generated reports will be TEST-tests.xml, html-reports.tar, tests.txt, and
tests-output.txt.
- uses: skf/execute@v1
  with:
    test: project/tests#case.ta
In this second example, the pom.xml file is expected to be in the path/to/project
folder.  The generated reports will be TEST-tests.ecosystem1.xml, html-reports.tar,
tests.ecosystem1.txt, and tests.ecosystem1-output.txt.
- uses: skf/execute@v1
  with:
    test: path/to/project/tests.ecosystem1#case.ta
skf/params@v1¶
A params function for use by generators.
Inputs¶
The function has the following inputs:
- 
data(required)The data to use for the automated test. 
- 
format(required)The format to use for the automated test data. formatmust so far be SQUASHTM_FORMAT (tm.squashtest.org/params@v1).
Example¶
- uses: skf/params@v1
  with:
    data:
      global:
        key1: value1
        key2: value2
      test:
        key1: value3
        key3: value4
    format: format
format must so far be SQUASHTM_FORMAT (tm.squashtest.org/params@v1).
data can have two keys:
- globalfor defining global parameters.
- testfor defining test parameters.
Using with inception¶
Please refer to “Inception” for more information on what inception is.
Preload the inception environment with at least the test execution report data.
Example¶
Assuming the following workflow and two existing execution reports report_1.xml and
report_2.xml:
metadata:
  name: SKF Inception
resources:
  files:
  - surefire-report1
  - surefire-report2
jobs:
  my_non_specific_job:
    runs-on: inception
    steps:
    - uses: actions/prepare-inception@v1
      with:
        TEST-tests.xml: ${{ resources.files.surefire-report1 }}
    - uses: skf/execute@v1
      with:
        test: OpenWeather/tests#forecast.ta
  my_specific_ecosystem_job:
    runs-on: inception
    steps:
    - uses: actions/prepare-inception@v1
      with:
        TEST-tests.ecosystem1.xml: ${{ resources.files.surefire-report2 }}
    - uses: skf/execute@v1
      with:
        test: OpenWeather/tests.ecosystem1#test.ta
You can use the following command to run it:
opentf-ctl \
    run workflow my_workflow.yaml \
    -f surefire-report1=report_1.xml \
    -f surefire-report2=report_2.xml
opentf-ctl ^
    run workflow my_workflow.yaml ^
    -f surefire-report1=report_1.xml ^
    -f surefire-report2=report_2.xml
opentf-ctl `
    run workflow my_workflow.yaml `
    -f surefire-report1=report_1.xml `
    -f surefire-report2=report_2.xml
Configuration¶
Hooks can be defined for the provided functions. This can be done in workflow definitions or at the orchestrator level so that they apply to all your workflows.
Configuration at the orchestrator level is done by setting the
SKF_PROVIDER_HOOKS environment variable.
Please refer to “Common Provider Settings” for more information.