Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Current »

Problem

When you run a multi-line mettleci command on Microsoft Windows using the caret (^) line continuation character it appears that processing of the command line options seems to stop at some point in the command.

For example:

# This input...
C:\> mettleci compliance test ^
  -assets datastage ^
  -report out.xml ^
  -rules rules ^
  -junit ^ 
  -test-suite warnings ^
  -ignore-test-failures ^
  -project-cache .

# ...executes the following command:
C:\> mettleci compliance test ^  -assets datastage ^  -report out.xml ^  -rules rules ^ -junit
MettleCI Command Line (build 128)
(C) 2018-2022 Data Migrators Pty Ltd
rules configuration discovered
new rule discovered - 'Adjacent Transformers' (PARALLEL_JOB)
new rule discovered - 'Adjacent Transformers' (SERVER_JOB)
<etc.>

When you look at your output it seems that command line options after the -junit option (-test-suite warnings, -ignore-test-failures, and -project-cache) have all been ignored.

Cause

In the command submitted above the -junit line has a space following the caret.

When using the caret (^) line continuation character in a Windows command shell script you must be careful to avoid adding a trailing space after the caret as this will cause command parsing to stop at that point. The caret causes the Windows Command Shell to effectively ignore the following character, which is normally a newline. If the character following a caret is a space then the space is ignored and the following newline is processed as normal, meaning the command is effectively ended at that point.

Solution

Remove any trailing spaces after line continuation carets.

  • No labels