knime-testflow

Test Knime workflows from a Junit test.

https://github.com/3d-e-chem/knime-testflow

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.5%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Test Knime workflows from a Junit test.

Basic Info
  • Host: GitHub
  • Owner: 3D-e-Chem
  • License: gpl-3.0
  • Language: Java
  • Default Branch: master
  • Size: 126 KB
Statistics
  • Stars: 2
  • Watchers: 5
  • Forks: 2
  • Open Issues: 3
  • Releases: 3
Created over 9 years ago · Last pushed almost 2 years ago
Metadata Files
Readme Changelog License Citation Zenodo

README.md

Test Knime workflows from a Junit test.

Java CI with Maven Coverage DOI

The Knime Testing Framework can run a test workflow either: * Inside Knime, if you right-click on a workflow in your local workspace, you can select "Run as workflow test". * From the command line, using knime -application org.knime.testing.NGTestflowRunner -root <workflow dir>.

This repo gives you another option run a test workflow inside of a Junit @Test method declaration.

This project uses Eclipse Tycho to perform build steps.

Usage

Using the plugin requires several steps.

1. Add repository

This plugin is available in the https://3d-e-chem.github.io/updates update site.

To make use of in a Tycho based project add to the <repositories> tag of the pom.xml file the following: <repository> <id>3d-e-chem</id> <layout>p2</layout> <url>https://3d-e-chem.github.io/updates</url> </repository>

2. Add dependency to tests

In the Require-Bundle attribute of the META-INF/MANIFEST.MF of the tests module add nl.esciencecenter.e3dchem.knime.testing.plugin;bundle-version="[1.0.0,2.0.0)", org.knime.testing;bundle-version="[4.0.0,6.0.0)",

3. Add test workflow

Create a test workflow as described in the "Testing Framework" manual.

Place the workflow as a directory inside the src/knime/ directory of the tests module.

4. Add test

Create a new test class and inside the class put the following: ``` @Rule public ErrorCollector collector = new ErrorCollector(); private TestFlowRunner runner;

@Before public void setUp() { TestrunConfiguration runConfiguration = new TestrunConfiguration(); runner = new TestFlowRunner(collector, runConfiguration); }

@Test public void test_simple() throws IOException, InvalidSettingsException, CanceledExecutionException, UnsupportedWorkflowVersionException, LockFailedException, InterruptedException { File workflowDir = new File("src/knime/my-workflow-test"); runner.runTestWorkflow(workflowDir); } ```

This will test the workflow put in src/knime/my-workflow-test in the previous step.

This will run minimal checks, to check more configure runConfiguration object.
For example add some more checks by adding runConfiguration.setTestDialogs(true); runConfiguration.setReportDeprecatedNodes(true); runConfiguration.setCheckMemoryLeaks(true);

5. Run tests

mvn verify

The test results can be found in the T E S T S section of the standard output.

6. Add GUI testing on GitHub actions.

As you might have noticed during the previouse step, running test will quickly show some dialogs and windows. To show graphical user elements an X-server is required, sadly GitHub actions does not run an X-server. A temporary X-server can be run with Xvfb, which is luckily available on all GitHub actions environments.

Prepend xvfb-run before the mvn verify command in the .github/workflows/*.yml file.

For example script: xvfb-run mvn verify -B

Build

mvn verify

An Eclipse update site will be made in p2/target/repository/ repository. The update site can be used to perform a local installation. By default this will compile against KNIME AP v5.1, using the KNIME-AP-5.1 file. To build instead for KNIME AP v4.7, use: mvn verify -Dknime.version=4.7

Development

Steps to get development environment setup based on https://github.com/knime/knime-sdk-setup#sdk-setup:

  1. Install Java 17
  2. Install Eclipse for RCP and RAP developers
  3. Configure Java 17 inside Eclipse Window > Preferences > Java > Installed JREs
  4. Import this repo as an Existing Maven project
  5. Activate target platform by going to Window > Preferences > Plug-in Development > Target Platform and check the KNIME Analytics Platform (5.1) - nl.esciencecenter.e3dchem.knime.testing.targetplatform/KNIME-AP-5.1.target target definition.

During import the Tycho Eclipse providers must be installed.

New release

  1. Update versions in pom files with mvn org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=<version>-SNAPSHOT command.
  2. Commit and push changes
  3. Create package with mvn package, will create update site in p2/target/repository
  4. Append new release to an update site
    1. Make clone of an update site repo
    2. Append release to the update site with mvn install -Dtarget.update.site=<path to update site>
  5. Commit and push changes in this repo and update site repo.

Owner

  • Name: 3D-e-Chem NLeSC project
  • Login: 3D-e-Chem
  • Kind: organization
  • Location: Amsterdam, The Netherlands

Software repositories for 3D-e-Chem project of Netherlands eScience Center

Citation (CITATION.cff)

# YAML 1.2
# Metadata for citation of this software according to the CFF format (https://citation-file-format.github.io/)
cff-version: 1.0.3
message: If you use this software, please cite it as below.
title: KNIME testflow
doi: 10.5281/zenodo.55805
authors:
- given-names: Stefan
  family-names: Verhoeven
  affiliation: Nederlands eScience Center
version: 1.0.0
date-released: 2016-06-17
repository-code: https://github.com/3D-e-Chem/knime-testflow
license: GPL-3.0

GitHub Events

Total
  • Fork event: 1
Last Year
  • Fork event: 1