Skip to main content
Skip table of contents

Running Unit Test Interception produces an error 'Can not deserialize'

Symptom

When running a DataStage job using MettleCI Unit Testing Interception mode you receive an error from the unit test harness that is Can not deserialize something. e.g.,

CODE
main_program: Skipping test spec '/opt/dm/mci/specs/DS_IIS_ADMIN/EnvironmentScouter/EnvironmentScouter.yaml', 
Can not deserialize instance of java.util.LinkedHashMap out of START_ARRAY token
 at [Source: java.io.FileInputStream@61ee5e4e; line: 10, column: 3] 
 (through reference chain: com.datamigrators.mettle.spec.TestSpecification["when"]->com.datamigrators.mettle.spec.JobExecution["parameters"])

Cause

This is caused by a unit test specification specification with an invalid syntax. The following specification, for example, does not specify Job parameters correctly, and causes the error described above:

CODE
---
given:
- path: "es_queryEnv-ln_results.csv"
  stage: "es_queryEnv"
  link: "ln_results"
when:
  job: "EnvironmentScouter"
  controller:
  parameters:
  - APT_GRID_ENABLE
then:
- path: "sf_envReport-ln_toFile.csv"
  stage: "sf_envReport"
  link: "ln_toFile"

Solution

Fix your test specification to use the correct syntax.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.