This topic explains how to run a test from the C++test command line interface (cpptestcli
), which is described in Command Line Interface (cli).
Sections include:
The command line mode requires a command line interface license (available with C++test Server Edition).
There are two command line interface licenses available for C++test:
|
For command line execution, you will need to ensure that the installation directory is on the path, or launch cpptest with the full path to the executable (for example, c:\parasoft\c++test\cpptestcli.exe
).
For cpptestcli
to email each developer a report that contains only the errors/results related to his or her work, one of the following conditions must be true:
You have configured C++test to compute code authorship based on source control data AND your project is under a supported source control system AND each developer’s source control username + the mail domain (specified using an options file and the -localsettings
option described in -localsettings %LOCALSETTINGS_FILE%
) matches the developer’s email address.
You have configured C++test to compute code authorship based on local user AND each user name + the mail domain (specified using an options file and the -localsettings
option described in -localsettings %LOCALSETTINGS_FILE%
) matches the developer’s email address.
Parasoft C++test has two user modes: interactive desktop usage in the GUI and command line mode via the command line interface (CLI). The CLI interface is a standard feature of the Server Edition.
CLI mode is typically used to perform regular or continuous code analysis and test in conjunction with regular/continuous builds or as a part of an automatic regression test infrastructure. C++test CLI can be invoked
on a full Visual Studio solution, or one or more projects or source files that are part of a solution.As part of the CLI execution, C++test can perform one or more of the following:
Execution of unit tests
in a given solution.As part of the execution, C++test can use your SCM client (if supported) to automatically retrieve file modification information from the SCM system and generate tasks for specific individuals based on results of code analysis and executed tests.
Specific execution options for C++test are controlled via Test Configurations and Preferences.
Test Configurations can be sourced from the built in set, or created using C++test interactive mode in the GUI. It is highly recommended that you do not use the built-in configurations (other than for getting started). We suggest using the built in configurations as starting templates for customer-specific configurations, which are then stored on disk or on Parasoft Team Server.
Preferences can be configured from the C++test GUI. Most of the preference settings can also be supplied with a configuration file that is provided as a parameter to a CLI call. A table of the configuration file preference settings is available in Local Settings (Options) Files. C++test preferences set from the GUI are applied by default. These can be overridden — on an individual basis—by preference values contained in the configuration file used with a given run. This enables you to have a basic set of preferences configured for all CLI runs, and then vary individual settings as necessary by providing an additional configuration file for a specific run with a given Test Configuration. This can be useful, for example, to include different information in reports for different runs, or to change options for email distribution of reports, including report names, email headings, etc.
C++test preferences and Parasoft Test preferences (which apply across Parasoft products) are accessed through the Parasoft> Preferences menu. Start by configuring the following preferences:
localhost
. Unless you changed the Team Server default port (18888) when it was installed, do not change the port here. Click Test Connection to verify the correct settings.Reports: The following options are enabled by default and are a good starting point:
Detailed report for developers (includes task breakdown with details).
Overview of tasks by authors (summary table).
Generate formatted reports in command line mode.
Suppressions Details (applies to static analysis only).
E-mails: Enter settings that will be used to send emails with reports. This needs to be an existing email account on an email server accessible from the C++test test machine.
Reports> Email Notifications:
If desired, enable Send Reports by Email. Regardless of this setting, reports will always be uploaded to Parasoft Team Server for later viewing (controlled by the CLI option). Email distribution will use the settings for E-mails above.
Manager reports contain a rollup of all test results generated by C++test Developer reports contain only results for individual developers. Enable options and specify email addresses accordingly.
Create a custom Test Configuration as described in Configuring Test Configurations and Rules for Policies. See Configuring Test Configurations for details on C++test-specific options.
Create a localsettings file as described in Local Settings (Options) Files.
For example, a sample command line to be added might be:
cpptestcli -solution "c:\MySolution" -resource "ProjectToTest" -config builtin://ShouldHaveRules -publishteamserver -localsettings acme_policy.settings
The reports will be sent after each batch run, and trend reports will be populated with data. The reports will also be available for viewing via Parasoft> Explore> Team Server Reports.
The general procedure for testing from the command line is as follows:
cpptestcli
utility, with appropriate options, to launch analysis in the command-line mode. A complete list of options is provided in cli Options. Key options are:C++test does not directly test headers unless they are included by a source file under test. See How do I analyze header files/what files are analyzed? for details. |
C++test does perform static analysis and unit testing of instantiated function templates and instantiated members of class templates. See Support for Template Functions for details. |
|
The general form of invocation for cpptestcli
is:
cpptestcli [OPTIONS]
Typically, invocations follow this pattern:
If you want to exclude some files from analysis/testing (for instance, to prevent static analysis of automatically-generated files), you can indicate which project resources should not be tested as described in Excluding Project Resources from Testing. Perform this configuration in the GUI, then the settings will be applied for all tests on this project—from the GUI or from the command line. |
Available cpptestcli
options are listed in the following tables.
-config
%CONFIG_URL% -
Specifies that you want to run the Test Configuration available at %CONFIG_URL%
.
This parameter is required except when importing projects. %CONFIG_URL%
is interpreted as a URL, the name of a Test Configuration, or the path to a local file. Examples:-config "mylocalconfig.properties"
-config "http://intranet.acme.com/cpptest/team_config.properties"
-config "builtin://Demo Configuration"
-config "Demo Configuration"
-config "user://My First Configuration"
-config "team://Team Configuration"
-config "team://teamconfig.properties"
-help
- Displays help information. Does not run testing.-localsettings
%LOCALSETTINGS_FILE% -
Reads the options file %LOCALSETTINGS_FILE%
for global preferences. These settings specify details such as Parasoft DTP settings, email settings, and Team Server settings.-nobuild
- Prevents C++test from rebuilding the project before testing it. Use this option if the project is already built before the test run.-fail
- Fails the build by returning a non-zero exit code if any violations are reported.-publish
- Publishes the report to DTP. You can enable sending reports to DTP in the GUI or in the command line mode; see Connecting to Development Testing Platform.-publishteamserver
- Publishes the report to the Team Server. The Team Server location can be specified in the GUI or in the options file (described in the -localsettings %LOCALSETTINGS_FILE%
entry).-report
%REPORT_FILE% -
Generates an XML report to the given file %REPORT_FILE%
and adds an HTML (or PDF or custom format—if specified using the report.format option) report with the same name (and a different extension) in the same directory.filename.html
and an XML report filename.xml
.-report filename.xml
-report filename.htm
-report filename.html
If the specified path ends with an ".html"/".htm"/".xml" extension, it will be treated as a path to the report file to generate. Otherwise, it will be treated as a path to a directory where reports should be generated.
If the file name is explicitly specified in the command and a file with this name already exists in the specified location, the previous report will be overwritten. If your command doesn’t explicitly specify a file name, the existing report file will not be overwritten—the new file will be named repXXXX.html, where XXXX is a random number.
If the -report
option is not specified, reports will be generated with the default names "report.xml/html" in the current directory.
-dtp.autoconfig
%PROJECT_NAME@SERVER
_NAME:port% -
Pulls settings stored on the DTP server (recommended for ease of maintenance — especially if you do not already have a locallocally stored settings file).
For example:-dtp.autoconfig
[email protected]:8080
-encodepass <plainpassword> -
Generates an encoded version of a given password. Prints the message 'Encrypted password: <encpass>' and terminates the cli application.
If your nightly process will 1) login to Team Server and b) send emails, you can use this option to encrypt the required passwords.
-showdetails
- Prints detailed test progress information.-solutionConfig
%SOLUTION_CONFIG_N
AME% -
Specifies the solution configuration to use for building the solution and for analysis. Debug
and Release
are common names. If the switch is omitted, then the active configuration is used. Specifying the solution configuration is strongly recommended because the active configuration may change unexpectedly.-targetPlatform %TARGET_PLATFORM_N
AME% -
Specifies the solution target platform to use for building the solution and for analysis. Any CPU and x86 are common names. If omitted, the active configuration is used. Specifying the target platform is strongly recommended because the active configuration may change unexpectedly.-appconsole stdout|% OUTPUT_FILE%
- Redirects C++test's console output to standard output or an %OUTPUT_FILE%
file. -appconsole stdout
(console redirected to the standard output)-appconsole console.out
(console redirected to console.out file)-list-compilers
- Prints a list of valid compiler family values.
-solution
.-list-configs - Prints a list of valid Test Configuration values.
Must be used along with-solution
.-include %PATTERN%,
-exclude %PATTERN% - Specifies files to be included/excluded during testing.
You must specify a file name or path after this option.
Patterns specify file names, with the wildcards *and ? accepted, and the special wildcard ** used to specify one or more path name segments. Syntax for the patterns is similar to that of Ant filesets.
Examples:-include **/Bank.cpp
(test Bank.cpp files)
-include **/ATM/Bank/*.cpp
(test all .cpp files in folder ATM/Bank)
-include c:/ATM/Bank/Bank.cpp
(test only the c:/ATM/Bank/Bank.cpp file)
-exclude **/internal/**
(test everything except classes that have path with folder "internal")
-exclude **/*Test.cpp
(test everything, but files that end with Test.cpp)
Additionally if a pattern is a file with a .lst extension, it is treated as a file with a list of patterns.
For example, if you use -include c:/include.lst and include.lst contains the following (each line is treated as single pattern):
**/Bank.cpp
**/ATM/Bank/*.cpp
c:/ATM/Bank/Bank.cpp
then it has same effect as specifying:-include **/Bank.cpp -include **/ATM/Bank/*.cpp
-include c:/ATM/Bank/Bank.cpp"
-useenv
- Causes the IDE to use PATH, INCLUDE, and LIB environment variables for Visual C++ compilation rather than the settings specified in the VC++ Directories section of the Projects options (in the Options dialog box).Option | Purpose | Notes |
---|---|---|
-solution %SOLUTION_FILE% -solution %SOLUTION_FILE% Specifies the location of the solution file to use. | Specifies the location of the solution file to use.Specifies the location of the solution file to use. | N/AN/ASpecifies the location of the solution file to use. |
| Specifies the path to the workspace resource | Use multiple times to specify multiple resources. Use quotes when the resource path contains spaces or other non-alphanumeric characters. If For example, to test the or - Other Examples:
|
|
Localsettings files can be passed at the command line to control options for reporting, task assignment, licensing, and more. This lets you:
Options files can control report settings, Parasoft DTP settings, error authorship settings, Team Server settings, and more. You can create different options files for different projects, then use the DTP settings, error authorship settings, Team Server settings, and more. You can create different options files for different projects, then use the -localsettings
option to indicate which file should be used for the current command line test.
Each options file must be a simple text file. There are no name or location requirements. Each setting should be entered in a single line.
If a parameter is specified in this file and there is an equivalent parameter in the GUI’s Preferences panel (available from Parasoft> Preferences), the parameter set in this file will override the related parameter specified from the GUI. If a parameter is not specified in this file, C++test will use the equivalent parameter specified in the GUI.
Any options for creating or importing projects are valid only when creating or importing the project. They are ignored during subsequent runs.
The fastest and easiest way to create options files is to export your Preferences from the GUI.
|
Options files can determine the following settings:
|
Setting | Purpose |
---|---|
report.associations | Specifies whether the report shows requirements, defects, tasks, and feature requests that are associated with a test. |
report.authors_details | Determines whether the report includes an overview of the number and type of tasks assigned to each developer. The default is |
report.contexts_details | Determines whether the report includes an overview of the files that were checked or executed during testing.The default is |
| Specifies the location and extension of the XSL file for a custom format. Used with For details and examples, see Configuring Reporting Settings. |
report.developer_errors=true|false | Determines whether manager reports include details about developer errors. |
report.developer_reports=true|false | Determines whether the system generates detailed reports for all developers (in addition to a summary report for managers). |
report.format=html|pdf|custom | Specifies the report format. |
report.generate_htmls=true|false | Determines whether HTML reports are generated and saved on the local file system. XML reports are generated and saved regardless of this setting’s value. The default setting is |
report.graph.cs_start_date=[MM/dd/yy] | Determines the start date for trend graphs that track static analysis tasks over a period of time. See Understanding Reports for more details on these reports. |
report.graph.ue_coverage_start_date=[MM/dd/yy] | Determines the start date for trend graphs that track coverage over a period of time. See Understanding Reports for more details on these reports. |
report.location_details=true|false | Specifies whether absolute file paths are added to XML data. This needs to be enabled on the Server installation if you want to relocate tasks upon import to desktop installations. |
report.mail.attachments=true|false | Determines whether reports are sent as attachments. All components are included as attachments; before you can view an HTML report with images, all attachments must be saved to the disk. The default setting is |
report.mail.cc=[email_addresses] | Specifies where to mail comprehensive manager reports. This setting must be followed by a semicolon-separated list of email addresses. This setting is typically used to send reports to managers or architects. It can also be used to send comprehensive reports to developers if developer reports are not sent automatically (for example, because the team is not using a supported source control system). |
report.mail.compact=trends|links | Specifies that you want to email a compact report or link rather than a complete report. If If |
report.mail.domain=[domain] | Specifies the mail domain used to send reports. |
report.mail.enabled=true|false | Determines whether reports are emailed to developers and to the additional recipients specified with the Remember that each developer that worked on project code will automatically be sent a report that contains only the errors/results related to his or her work. |
report.mail.exclude=[email_addresses] | Specifies any email addresses you do not want to receive reports. This setting is used to prevent C++test from automatically sending reports to someone that worked on the code, but should not be receiving reports. |
report.mail.exclude.developers=true|false | Specifies whether reports should be mailed to any developer whose email is not explicitly listed in the |
report.mail.format=html|ascii | Specifies the email format. |
| Specifies the "from" line of the emails sent. |
report.mail.include=[email_addresses] | Specifies the email addresses of developers that you want to receive developer reports. This setting must be followed by a semicolon-separated list of email addresses. This setting is typically used to send developer reports to developers if developer reports are not sent automatically (for example, because the team is not using a supported source control system). It overrides developers specified in the 'exclude' list. |
report.mail.on.error.only=true|false | Determines whether reports are sent to the manager only if an error is found or a fatal exception occurs. Developer emails are not affected by this setting; developer emails are sent only to developers who are responsible for reported errors. The default setting is |
report.mail.server=[server] | Specifies the mail server used to send reports. |
report.mail.subject=My New Subject | Specifies the subject line of the emails sent. The default subject line is "C++test Report." For example, if you want to change the subject line to "C++test Report for Project A", you would use |
report.mail.time_delay=[server] | Specifies a time delay between emailing reports (to avoid bulk email restrictions). |
| Specifies where to mail reports for errors assigned to "unknown". |
| Specifies the settings for SMTP server authentication. The |
report.active_rules=true|false | Determines if C++test reports contain a list of the rules that were enabled for the test. |
report.suppressed_msgs=true|false | Determines whether reports include suppressed messages. |
session.tag=[name] | Specifies a session tag used to label these results. This value is used for uploading summary results to Team Server. The tag is an identifier of the module checked during the analysis process. Reports for different modules should be marked with different tags. |
report.ue_coverage_details_htmls=[coverage_type] | Determines whether a test's HTML report links to another report that includes source code annotated with line-by-line coverage details. The following values can be used for LC - for line coverage SC - for statement coverage BCC - for block coverage DC - for decision coverage SCC - for simple condition coverage MCDC - for MC/DC coverage CC - for Call Coverage |
report.metrics_details=true|false | Determines whether an XML report with metrics summary information (as well as individual class and method detail data where applicable) is produced. This report will be generated only when a metricsenabled Test Configuration is run. |
Setting | Purpose |
---|---|
dtp.enabled=true|false | Determines whether the current C++test installation is connected to DTP. This setting is not needed if you want to use the value specified in the GUI. |
concerto.reporting=true|false | Determines whether the current C++test installation is connected to Parasoft Project Center. This setting is not needed if you want to use the value specified in the GUI. |
dtp.autoconfig=true|false | Enables autoconfiguration with C++test settings stored on the DTP server |
dtp.server=[server] | Specifies the host name of the DTP server. This setting is not needed if this information is specified in the GUI. |
concerto.data.port=[port] | Specifies the Parasoft Project Center port. This setting is not needed if you want to use the value specified in the GUI. |
dtp.port=[port] | Specifies the port number of the DTP server. This setting is not needed if you want to use the value specified in the GUI. |
concerto.user_defined_attributes=[attributes] | Specifies the user-defined attributes for Parasoft Project Center. Use the format For more details on attributes, see Connecting to Project Center. This setting is not needed if you want to use the value specified in the GUI. |
concerto.log_as_nightly=true|false | Determines whether the results sent to Parasoft Project Center are marked as being from a nightly build. |
concerto.use_resource_attributes=true|false | Determines whether Parasoft Project Center attributes specified in the GUI at the project level should be used. This allows you to disable project level Parasoft Project Center attributes. |
dtp.project=[project_name] | Specifies the name of the DTP project that you want these results linked to. |
Setting | Purpose |
---|---|
tcm.server.enabled=true|false | Determines whether the current C++test installation is connected to the Team Server. This setting is not needed if you want to use the value specified in the GUI. |
tcm.server.name=[name] | Specifies the machine name or IP address of the machine running Team Server. This setting is not needed if you want to use the value specified in the GUI. |
tcm.server.port=[port] | Specifies the Team Server port number. This setting is not needed if you want to use the value specified in the GUI. |
| Determines whether username and password are submitted to connect to Team Server. Usernames/passwords are not always needed; it depends on your team’s setup. If the first setting is Note that Team Server must have the username and password setting already enabled before these settings can be used. |
Setting | Purpose |
---|---|
| Determines whether the current C++test installation retrieves its license from LicenseServer. This setting is not needed if you want to use the value specified in the GUI. Example: |
| Specifies the machine name or IP address of the machine running LicenseServer Configuration Manager. This setting is not needed if you want to use the value specified in the GUI. Example: |
| Specifies the LicenseServer port number. This setting is not needed if you want to use the value specified in the GUI. Example: |
| Specifies the type of license that you want this C++test installation to retrieve from LicenseServer. This setting is not needed if you want to use the value specified in the GUI.
Example: |
| Specifies the maximum number of seconds C++test will wait for the license to be automatically configured from LicenseServer. Default is |
| Specifies the local license that you want this C++test installation to use. This setting is not needed if you want to use the value specified in the GUI. |
| Specifies the local password that you want this C++test installation to use. This setting is not needed if you want to use the value specified in the GUI. |
| Specifies the time that C++test will wait for a license if a license is not currently available. For example to make C++test wait 3 minutes for license tokens, use |
Setting | Purpose |
---|---|
techsupport.auto_creation=true|false | Determines whether archives are automatically prepared when testing problems occur. |
techsupport.send_email=true|false | Determines whether prepared archives are emailed to Parasoft support. If you enable this, be sure to specify email settings from the GUI or with the options in Reporting Settings. |
techsupport.archive_location=[directory] | Specifies where archives are stored. |
techsupport.verbose=true|false | Determines whether verbose logs are included in the archive. Note that this option cannot be enabled if the logging system has custom configurations.
|
techsupport.verbose.scontrol=true|false | Determines whether verbose logs include output from source control commands. Note that the output could include fragments of your source code. |
techsupport.item.general=true|false | Determines whether general application logs are included. |
techsupport.item.environment=true|false | Determines whether environment variables, JVM system properties, platform details, additional properties (memory, other) are included in the archive. |
techsupport.advanced=true|false | Specifies if advanced options will be sent. |
techsupport.advanced.options=[option] | Specifies any advanced options that the support team asked you to enter. |
techsupport.dtp.engine=true|false | Specifies if additional data generated during analysis will be sent. |
Setting | Purpose |
---|---|
authors.mappings.location=team|local|shared | Specifies where the authorship mapping file is stored. This setting defaults to If set to If set to The
|
authors.mapping{n}=[from_user, to_user] | Specifies a specific author mapping for For example:
|
authors.user{n}=[username, email, full_name] | Specifies a specific author name and email for For example:
|
authors.mappings.file=[path] | Specifies the location of a "shared" file as described in For example:
|
authors.ignore.case=true|false | Determines whether author names are case sensitive. If true, David and david will be considered the same user. If false, David and david will be considered two separate users. |
scope.sourcecontrol=true|false | Determines whether C++test computes code authorship based on a data from a supported source control system. This setting is not needed if you want to use the value specified in the GUI. |
scope.local=true|false | Determines whether C++test computes code authorship based on the local user. This setting is not needed if you want to use the value specified in the GUI. |
scope.recommended.computation=first|random | Determines how C++test selects the Recommended Tasks for each developer — it can choose n developer tasks at random (the default) or select the first n developer tasks reported (n is the maximum number of tasks that C++test is configured to show each developer per day) |
scope.xmlmap=true|false | Specifies whether C++test computes task assignment based on XML files that define how you want tasks assigned for particular files or sets of files (these mappings can be specified in the GUI then saved in an XML file). |
scope.xmlmap.file=[file] | Specifies the name of the XML file that defines how you want tasks assigned for particular files or sets of files. |
Indexes (numbered from 1 to n) must be added to the prefix if you want to define more than one repository of the same type. For example:
If you are defining only one repository, you do not need to use an index. For example:
|
Property | Description |
---|---|
scontrol.rep.type=accurev | AccuRev repository type identifier. |
scontrol.rep.accurev.host= | AccuRev server host. |
scontrol.rep.accurev.port= | AccuRev server port. Default port is 1666. |
scontrol.rep.accurev.login= | AccuRev user name. |
scontrol.rep.accurev.password= | AccuRev password. |
Property | Description |
---|---|
scontrol.ccase.exec= | Path to external client executable ( |
scontrol.rep.type=ccase | ClearCase repository type name. |
scontrol.rep.ccase.vob= | Path inside VOB. ccase.vob value + File.separator must be the valid path to a ClearCase controlled directory. |
Property | Description |
---|---|
scontrol.rep.type=cvs | CVS repository type identifier. |
scontrol.rep.cvs.root= | Full CVSROOT value. |
scontrol.rep.cvs.pass= | Plain or encoded password. The encoded password should be the same as in the .cvspass file. For For When you are first logged in to the To retrieve it, go to the registry (using regedit), and look for the value under This should display your entire login name ( |
| Determines whether the cvs login and password should be used for |
scontrol.rep.cvs.ext.server | If connecting to a Has the same meaning as the |
scontrol.rep.cvs.ssh.loginname= | Specifies the login for SSH connections (if an external program can be used to provide the login). |
scontrol.rep.cvs.ssh.password= | Specifies the password for SSH connection. |
scontrol.rep.cvs.ssh.keyfile= | Specifies the private key file to establish an SSH connection with key authentication. |
scontrol.rep.cvs.ssh.passphrase= | Specifies the passphrase for SSH connections with the key authentication mechanism. |
scontrol.rep.cvs.useShell= | Enable an external program ( |
scontrol.rep.cvs.ext.shell= | Specifies the path to the executable to be used as the |
scontrol.rep.cvs.ext.params= | Specifies the parameters to be passed to an external program. The following casesensitive macro definitions can be used to expand values into command line parameters:
|
Property | Description |
---|---|
scontrol.rep.type=git | Git repository type identifier. |
scontrol.git.exec= | Path to Git executable. If not set, assumes git command is on the path. |
scontrol.rep.git.branch= | The name of the branch that the source control module will use. This can be left blank and the currently checked out branch will be used. |
scontrol.rep.git.url= | The remote repository URL (e.g., |
scontrol.rep.git.workspace= | The directory containing the local git |
Property | Description |
---|---|
scontrol.perforce.exec= | Path to external client executable (p4 ). |
scontrol.rep.type=perforce | Perforce repository type identifier. |
scontrol.rep.perforce.host= | Perforce server host. |
scontrol.rep.perforce.port= | Perforce server port. Default port is 1666. |
scontrol.rep.perforce.login= | Perforce user name. |
scontrol.rep.perforce.password= | Password. |
scontrol.rep.perforce.client= | The client workspace name, as specified in the P4CLIENT environment variable or its equivalents. The workspace's root dir should be configured for local path (so that files can be downloaded). |
Linux users should run in an environment prepared for using Serena programs, such as 'dmcli'
|
Property | Description |
---|---|
scontrol.rep.type=serena | Serena Dimensions repository type identifier. |
scontrol.rep.serena.host= | Serena Dimensions server host name. |
scontrol.rep.serena.dbname= | Name of the database for the product you are working with. |
scontrol.rep.serena.dbconn= | Connection string for that database. |
scontrol.rep.serena.login = | Login name. |
scontrol.rep.serena.password | Password. |
scontrol.rep.serena.mapping | Maps workspace resources to Serena Dimension repository paths.
|
Property | Description |
---|---|
scontrol.rep.type=svn | Subversion repository type identifier. |
scontrol.rep.svn.url= | Subversion URL specifies protocol, server name, port and starting repository path (e.g., |
scontrol.rep.svn.login= | Login name. |
scontrol.rep.svn.password = | Password (not encoded). |
scontrol.svn.exec= | Path to external client executable (svn ). |
Property | Description |
---|---|
scontrol.rep.type=synergy | Synergy/CM repository type identifier |
scontrol.rep.synergy.host= | Computer on which synergy/cm engine runs. Local host is used when missing. For Web mode, the host must be a valid Synergy Web URL with protocol and port (e.g., |
scontrol.rep.synergy.dbpath= | Absolute synergy database path e.g |
scontrol.rep.synergy.projspec= | Synergy project spec which contains project name and its version e.g name-version. |
scontrol.rep.synergy.login= | Synergy user name. |
scontrol.rep.synergy.password= | Synergy password (not encoded). |
scontrol.rep.synergy.port= | Synergy port. |
scontrol.rep.synergy.remote_client= | (UNIX only) Specifies that you want to start ccm as a remote client. Default value is false. Optional. This is not used for Web mode. |
scontrol.rep.synergy.local_dbpath= | Specifies the path name to which your database information is copied when you are running a remote client session. If null, then the default location will be used. This is not used for Web mode. |
scontrol.synergy.exec= | Path to external client executable (ccm ) |
Property | Description |
---|---|
scontrol.rep.type=tfs | TFS repository type identifier. |
scontrol.rep.tfs.host= | Name of the machine running TFS. |
scontrol.rep.tfs.port= | TFS server’s port number (optional; when not specified, 8080 is used). |
scontrol.rep.tfs.protocol= | The protocol used to connect to TFS server. Available values are HTTP and HTTPS. |
scontrol.rep.tfs.login = | TFS user name. |
scontrol.rep.tfs.password= | TFS password. |
Property | Description |
---|---|
scontrol.rep.type=vss | Visual SourceSafe repository type identifier. |
scontrol.rep.vss.ssdir= | Path of repository database (backslash symbols '\' in |
scontrol.rep.vss.projpath= | VSS project path. |
scontrol.rep.vss.login= | VSS login. |
scontrol.rep.vss.password= | VSS password. |
scontrol.vss.exec= | Path to external client executable (ss ). |
scontrol.vss.lookup= | Determines whether a full VSS database search is performed to find associations between local paths and repository paths. |
Project $/SomeProject
has the working directory C:\TEMP\VSS\SomeProject
and its subproject $/SomeProject/SomeSubProject
has the working directory D:\SomeSubProject
).Setting | Purpose |
---|---|
fileencoding.mode=default|user|auto | Defines how file encoding is calculated.
|
fileencoding.user-encoding=<name_of_encoding> | If It should be specified in form |
fileencoding.auto-language=<language’s numeric_code> | If
|
Setting | Purpose |
---|---|
report.rules=[url_path_to_rules_directory] | Specifies the directory for rules html files (generated by clicking the For example:
The default setting is none. |
tasks.clear=true|false | Clears existing tasks upon startup in cli mode. This prevents excessive time being spent "loading existing results." The default is |
console.verbosity.level=low|normal|high | Specifies the verbosity level for the Console view. Available settings are:
|
cpptest.custom.rules.dir=[directory] | Indicates where user-defined rules are saved. |
cpptest.custom.configs.dir=[directory] | Indicates where user-defined Test Configurations are saved. |
custom.compilers.dir=[directory] | Overrides the custom compiler directory settings (found in Parasoft> Configurations> Custom compilers) and uses the defined directory to search for custom compilers |
parallel.mode=Manual|Auto|Disabled | Determines which of the following modes is active:
For more details on this and other parallel processing options, see Configuring Parallel Processing. |
parallel.max_threads=<number> | Specifies the maximum number of parallel threads that can be executed simultaneously. The actual number of parallel threads is determined by the number of CPUs, available memory, and license settings. |
parallel.free_memory_limit=<percentage> | Specifies the amount of memory that should be kept free in low memory conditions (expressed as a percentage of the total memory available for the application). This is used to ensure that free memory is available for other processes. |
parallel.no_memory_limit=true|false | Indicates that you do not want to place any restrictions (beyond existing system limitations) on the memory available to C++test |
Here is one sample options file named local.properties
:
# Team Server settings: (these may be redundant with settings already specified in Team Preferences of the installed version, so may not be needed). tcm.server.enabled=true tcm.server.name=<team_server.company.com> # Report settings report.developer_errors=true report.developer_reports=true report.format=html session.tag=<project name> # Mail settings: report.mail.enabled=true report.mail.cc=<[email protected];[email protected]> report.mail.server=mail.company.com report.mail.domain=company.com report.mail.subject=<Static Analysis results on Project X> report.mail.attachments=true |
Here is another sample:
# Team Server settings tcm.server.enabled=true tcm.server.name=teamserver.mycompany.com tcm.server.port=18888 tcm.server.accountLogin=true tcm.server.username=tcm_user tcm.server.password=tcm_pass # Parasoft DTP settings dtp.server=dtp.mycompany.com dtp.port=32323 # Mail settings report.mail.enabled=true report.mail.server=mail.mycompany.com report.mail.domain=mycompany.com report.mail.cc=project_manager report.mail.subject=Coding Standards concerto.log_as_nightly=true |
The following variables can be used in reports, e-mail, Parasoft DTP, Team Server, and license settings. Note that session tag value can't contain any ':' characters.
env_var
example: ${env_var:HOME}
Outputs the value of the environmental variable specified after the colon.
project_name
example: ${project_name}
Outputs the name of the tested project. If more than one project is provided as an input, it first outputs the tested project name, then "..."
workspace_name
example: ${workspace_name}
Outputs
the Solution name.config_name
$ example: ${config_name}
Outputs the name of executed Test Configuration; applies only to Reports and Email settings.
analysis_type
$ example: ${analysis_type}
Outputs a comma separated list of enabled analysis types (for example: Static, Generation, Execution); applies only to Reports and Email settings.
tool_name
$ example: ${tool_name}
Outputs the tool name (for example: C++test).
Example localsettings file
# REPORTS #Determines whether reports are emailed to developers and to the additional recipients specified with the cc setting. #Remember that if the team is using CVS for source control and each developer's email address matches his or her CVS username + the mail domain, each developer that worked on project code will automatically be sent a report that contains only the errors/results related to his or her work. report.mail.enabled=true #Exclude developers emails (true/false) report.mail.exclude.developers=false # Append developers errors to manager emails (true/false) report.developer_errors=true # Send reports to developers (true|false) report.developer_reports=true # Append suppressed messages (true|false) report.suppressed_msgs=false#Determines where to mail complete test reports. #This setting is typically used to send reports to managers or architects. #It can also be used to send reports to developers if developer reports #are not sent automatically (for example, because the team is not using CVS). [email protected]; ${env_var:USERNAME} @domain.com # mail target for unknown developer errors [email protected] #Specifies the mail server used to send reports. report.mail.server=mail_server.domain.com #Specifies the mail domain used to send reports. report.mail.domain=domain.com #Specify mali from report.mail.from=nightly #Specifies any email addresses you do not want to receive reports. #This setting is used to prevent from automatically sending reports to someone that worked on the code, but should not be receiving reports. This setting is only applicable if the team is using CVS for source control and developer reports are being sent automatically. report.mail.exclude=developer1;developer2 # Specifies the subject line of the emails sent. report.mail.subject= ${tool_name} Report - ${config_name} # Report test params include (true|false) report.test_params=true # Team Server #Determines whether the current installation is connected to the Team Server. tcm.server.enabled=true #Specifies the machine name or IP address of the machine running Team Server. tcm.server.name=team_server.domain.com #Specifies the Team Server port number. tcm.server.port=18888 tcm.server.accountLogin=true tcm.server.username=user tcm.server.password=password session.tag= ${config_name} # Parasoft Project Center #Determines if the current installation is connected to Parasoft Project Center. concerto.reporting=true #Specifies the host name of the Parasoft DTP server. dtp.server=grs_server.domain.com # Specifies the port number of the Parasoft Project Center report collector. concerto.data.port=32323 # Specifies user-defined attributes for Parasoft Project Center. #Use the format key1:value1; key2:value2 #Attributes help you mark results in ways that are meaningful to your organization. #They also determine how results are grouped in Parasoft Project Center and how you can filter results in Parasoft Project Center. #For example, you might want to label results by project name and/or by project component name. #Each attribute contains two components: a general attribute category name #and a specific identification value. For example, assume your organization wants to classify results by project. #You might then use the attribute project:projname1. For the next project, you could use a different #local settings file that specified an attribute such as project:projname2. concerto.user_defined_attributes=Type:Nightly;Project:Project1 # Determines whether the results sent to Parasoft Project Center are marked as being from a nightly build. concerto.log_as_nightly=true # SCOPE #code authorship based on CVS scope.sourcecontrol=true #code authorship based on author tag scope.author=false #code authorship based on local user scope.local=false # LICENSE #override license settings #cpptest.license.autoconf.timeout=40 cpptest.license.use_network=true cpptest.license.network.host=license_server.domain.com cpptest.license.network.port=2222 cpptest.license.network.edition=server_edition # SOURCE CONTROL scontrol.rep1.type=cvs scontrol.rep1.cvs.root=:pserver:developer@cvs_server.domain.com:/home/cvs/ scontrol.rep1.cvs.pass=mypassword |