Publish stubs by using the command line

You can publish a stub to HCL Quality Server or Dockerfile and build context by using the HCL OneTest™ API command line.
Note: To publish to a Dockerfile and build context, only stubs that are based on specific transports are supported. For more information, see Supported transports to publish stubs to a Dockerfile and build context.
The following is the syntax to use:
IntegrationTesterCmd Options publish-stubs

HCL Quality Server

The following is an example syntax to publish a stub to HCL Quality Server:
IntegrationTesterCmd --serverUrl "https://Host name or IP address:5443/RTCP/" 
--domain <Domain name> --environment <Environment name> 
--project <Path to project file> publish-stubs

Starting from 10.0, you can publish a managed stub with a default configuration to HCL Quality Server and the stub is not started automatically after publishing. For more information about managed stubs, see Server-based stubs.

You can opt to publish stubs with any of the following conditions:
  • Publishing the first instance of a stub. A new managed stub instance is created in the selected environment and domain, with a default configuration and is in the STOPPED state.
  • Publishing to update the version of an existing stub. All existing instance of that stub type are updated but their configuration settings are not changed.
You can start the published stubs by using the start stub command for the managed stubs, which is switch-on-stub.
Note: If you want to update the configuration of an existing stub instance, you must first stop the stub, if it is running and then update its configuration from the command line.

The following table lists the options that you can use with the IntegrationTesterCmd command to publish stubs to HCL Quality Server.

Options Description Required
--optionsFile The path to an XML file that contains the command options. Any options that are explicitly specified override those options set in this file. For details of the format of this file, see The Options file. No
--serverUrl/-u URL of the HCL Quality Server. Yes
--domain/-d Domain name Yes
--environment/-e Environment name Yes
--project/-p The full path to a project file. Yes
--stubFilter The filter that is used to select which stubs are published. A filter is defined by XML type tags that describe the hierarchy of the stubs to publish as it appears in the project within HCL OneTest™ API. Each filter declares the component names, an operation name, and the folder names that the stubs to publish belong to. If not specified, the filter defaults to publishing all stubs. For more information about selecting stubs by using a stub filter, see Specifying a stub filter. No, default is to publish to all stubs in the project.
--majorVersion The major version at which to publish the stubs (optional). The default is to use the latest version on the server for that project, domain, environment combination. For more information about specifying the stub version, see Specifying publish versions. No, default is to use the latest version on the server for that project, domain, and environment combination.
--minorVersion The minor version at which to publish the stubs (optional). The default is to use the latest version on the server for that project, domain, environment combination. For more information about specifying the stub version, see Specifying publish versions. No, default is to use the latest version on the server for that project, domain, environment combination.
--updateMode For more information about specifying the update mode, see updateMode. No, default is publish all stubs, old and new.
--securityToken The value of the security token to use for authentication with HCL Quality Server when domain security is enabled (optional). For more information, see Domain level security. No, default is to send no token.

Dockerfile and build context

Before you build the Docker image for a stub that has been published to a Dockerfile and build context, you must set up to use Docker. See Preparing to use Docker.

The following is an example syntax to publish a stub to a Dockerfile and build context output directory:
IntegrationTesterCmd --destination docker --outputDirectory <Path to output directory> 
--dockerfileTemplate ubuntu --environment <Name of environment> 
--project <Path to project file> --stubFilter <Filter value> publish-stubs

The following table lists the options that you can use with the IntegrationTesterCmd command to publish stubs to a Dockerfile and build context output directory.

Options Description Required
--optionsFile The path to an XML file that contains the command options. Any options that are explicitly specified override those options set in this file. For details of the format of this file, see The Options file. No
--destination The destination to publish stubs. The value can be docker or rtcp. The default is rtcp and is used if the destination option is not specified. docker must be specified to publish to a Dockerfile and build context. Yes
--outputDirectory The path to the directory where the Dockerfile and other context files are output. Yes
--dockerfileTemplate A template Dockerfile that is used to generate a Dockerfile. HCL OneTest™ API provides the ubuntu template for you to use. Yes
--dockerfileComment Optional text in quotation marks that is added as a comment in the generated Dockerfile. No
--environment/-e Environment name Yes
--project/-p The full path to a project file. Yes
--stubFilter The filter that is used to select which stubs are published. A filter is defined by XML type tags that describe the hierarchy of the stubs to publish as it appears in the project within HCL OneTest™ API. Each filter declares the component names, an operation name, and the folder names that the stubs to publish belong to. If not specified, the filter defaults to publishing all stubs. For more information about selecting stubs by using a stub filter, see Specifying a stub filter. No, default is to publish to all stubs in the project.
The following example on Windows systems outputs a Dockerfile and build context files to C:\myImages\stubA.
IntegrationTesterCmd --destination docker --outputDirectory C:\myImages\stubA 
--dockerfileTemplate ubuntu --environment Env1 
--project C:\projects\P1\P1.ghp --stubFilter "<O>TestOperation</O>" publish-stubs

Build a Docker image by using the Dockerfile

The Dockerfile and context files in the output directory can be used to build a Docker image.

The following is an example syntax to build a Docker image from the output of the publish-stub command:
docker build -t <name> <dockerfile_location>

Where name is the name and optionally a tag in the 'name:tag' format for the image that you want to create.

Where dockerfile_location is the output directory that contains the Dockerfile and build context files.

The following example on Windows systems, builds a Docker image that is named stubimage from a Dockerfile and build context files that were published to C:\myImages\StubA

docker build -t stubimage C:\myImages\stubA

If the output directory is not accessible by the Docker client, for example it is on a different computer, the directory must be copied to an accessible directory on the Docker client computer before you run the Docker build command with the dockerfile_location updated.

When the Docker image is created, it can be run as a container. For information about running the container, see Publishing stubs to Docker: Running in a Docker container.

For more information about building Docker images, see the Docker Build Documentation.

Error codes

For details of any error codes, see Exit codes for Command-line client and Ant client.

Feedback