This topic explains how you can specify settings to control options for reporting, task assignment, licensing, and more. Settings can be used to share preferences across a team as well as to apply different groups of settings to different projects and test runs.
Sections include:
About Settings
Settings can control the configuration of reports, Parasoft DTP, error authorship, and more. You may want to create a file with settings to:
- Configure and use different setting configurations for different projects.
- Extend or override team-wide settings as needed (for example, for settings that involve local paths).
- Enter GUI-specified and manually-specified settings into Parasoft DTP, which centralizes preference distribution and updating across the team.
- Adjust settings without having to open the GUI.
- If an option is configured both in the settings file and in the GUI, the settings will override the GUI configuration.
Specifying and Storing Settings
There are two ways to specify settings:
- Enter them manually in a simple text file. There are no name or location requirements.
Export your GUI preferences as described in Exporting GUI Preferences to a Settings File then adjust or extend them as needed.
Creating a Settings (Options) File by Exporting Your GUI Preferences
The fastest and easiest way to create options files is to export your Preferences from the GUI.
- Choose Parasoft> Preferences.
- Select Parasoft (the root element in the left tree).
- Click the share link in the right side of the panel.
- In the dialog that opens, specify which preferences you want to export to a file.
- Click the Browse button, then specify the file where you want the settings saved.
- Click OK.
- If you select an existing file, the settings will be appended to that file. Otherwise, a new file will be created.
- Exported passwords will be encrypted.
Settings can be stored on Parasoft DTP (where they are automatically applied to connected C/C++test installations) or in a local file (where they can be specified from the command line). For details on how to store and apply settings, see C/C++test Configuration Overview.
Additional Information
- Each setting should be entered on a single line.
- We highly recommend that you use encoded passwords to ensure successful authentication and increase the level of security; see Creating an Encoded Password.
- If you are importing preferences from settings specified on DTP and you want to override these settings from the GUI, you can clear the Use DTP settings option on the appropriate page, then manually configure the settings.
- If any settings problems are detected during a test run, details will be reported in the command line output.
If you are running cli mode from a developer/tester desktop (as opposed to from a Server machine), use the
tasks.clear=false
option to ensure that your results from previous runs are preserved.- If you are reusing configuration files (.properties) between command line run (CLI) and IDE, when specifying file paths, consider using absolute paths rather than relative paths to avoid misconfigurations due to possible different working directories of CLI and IDE. To make the configuration files shareable, you can use variables (as a part of such a file path), for example:
cpptest.custom.rules.dir=${env_var:HOME}/custom/rules
- If you are reusing configuration files (.properties) between command line run (CLI) and IDE, when specifying file paths, consider using absolute paths rather than relative paths to avoid misconfigurations due to possible different working directories of CLI and IDE. To make the configuration files shareable, you can use variables (as a part of such a file path), for example:
Available Settings
Reporting Settings
Setting | Purpose |
---|---|
build.id= | Specifies a build identifier used to label results. It may be unique for each build but may also label more than one test sessions that were executed during a specified build. The maximum length for a build ID is 128 characters. The default is The following configuration specifies the custom build ID that consists of the name of the project and the build number passed via the environmental variable
For the ABC project and the build number 114 on a CI server, this may resolve to |
report.active_rules=true|false | Determines if the reports contain a list of the rules that were enabled for the test. Default: false |
report.archive=true|false | Enables the generation of an additional compressed archive (.zip) file in the specified report location. The ZIP file contains all the files generated to build the report. This option can generate an archive for any report format (e.g., HTML, PDF, SARIF, etc.). By generating an archive, you can also perform custom transformations of the report because all of the elements are generated to the specified destination folder. Default: false |
report.associations | Specifies whether the report shows requirements, defects, tasks, and feature requests that are associated with a test. Default: false |
report.authors_details | Determines whether the report includes an overview of the number and type of tasks assigned to each team member. Default: true |
report.contexts_details | Determines whether the report includes an overview of the files that were checked or executed during testing. Default: false |
| Specifies the location and extension of the XSL file for a custom format. Used with For details and examples, see Configuring Report Settings. |
report.developer_errors=true|false | Determines whether manager reports include details about team member tasks. Default: false |
report.developer_reports=true|false | Determines whether the system generates detailed reports for all team members (in addition to a summary report for managers). Default: true |
| Specifies whether the tested source code is published to the DTP server. If set to If set to If set to Default: full (Default when the report.dtp.publish option is enabled.) |
| Specifies the report formats. To generate multiple reports in different formats for a single run, enter a comma-separated list. If you have the "Automation" license feature enabled, XML reports are generated and saved in addition to the report formats specified. For example:
Default: html |
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. Default: false |
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 team members if such 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 team members 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. Default: false |
report.mail.exclude=[email_addresses] | Specifies any email addresses you do not want to receive reports. This set-ting is used to prevent automated sending of 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 team member whose email is not explicitly listed in the Default: false |
report.mail.format=html|ascii | Specifies the email format. Default: html |
report.mail.from=[email_address OR user_name_of_the_same_domain] | Specifies the "from" line of the emails sent. Default: |
report.mail.include=[email_addresses] | Specifies the email addresses of team members that you want to receive individual reports. This setting must be followed by a semicolon-separated list of email addresses. This setting is typically used to send individual reports to team members if such reports are not sent automatically (for example, because the team is not using a supported source control system). It overrides team members specified in the 'exclude' list. |
report.mail.on.error.only=true|false | Determines whether reports are sent to the manager only if a task is generated or a fatal exception occurs. Team member emails are not affected by this setting; individual emails are sent only to team members who are responsible for reported tasks. Default: false |
report.mail.server=[server] | Specifies the mail server used to send reports. |
report.mail.port=[port] | Specifies the mail server host’s port number. Default: 25 |
report.mail.security=[SL| STARTTLS| NONE] | Specifies the desired security. Available settings are SSL, STARTTLS, NONE. SSL is not available in Visual Studio. |
report.mail.subject=My New Subject | Specifies the subject line of the emails sent. The default subject line is ${tool_name} Report - ${config_name}. For example, if you want to change the subject line to "Report for Project A", you would use
Default: |
report.mail.time_delay=[server] | Specifies a time delay between emailing reports (to avoid bulk email restrictions). Default: 0 |
report.mail.unknown=[email_address OR user_name_of_the_same_domain] | Specifies where to mail reports for errors assigned to "unknown". |
report.mail.username=[username] report.mail.password=[password] report.mail.realm=[realm] | Specifies the settings for SMTP server authentication. The |
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 metrics-enabled Test Configuration is run. Metrics details will be shown in HTML and PDF reports. Default: true |
report.ref.report.file =[path] | Specifies a path to the location where the reference report file will be created during analysis. See Configuring Task Reporting Preferences. |
report.additional.report.dir=[directory] | Specifies a path to the directory where additional C/C++test Standard-compatible XML report files will be generated for the currently executed test configuration. The additional XML report files may include static analysis, metrics, unit testing and line coverage results, depending on the test configuration. This setting is available only in the command line mode (CLI). |
report.rules=[url_path_to_rules_directory] | This setting specifies a path to the directory containing static analysis rules HTML files. Based on that path, links to rule documentation are added in HTML reports. To apply this setting in the GUI, you need to define it in a .properties file and then provide a path to this file in the Option file field in the Report & Publish window. For more details, see Generating Reports. For example:
Default: none |
| Specifies if and how much additional information from source control is included in the report. If set to If set to If set to Default: off |
report.setup.problems=top|bottom|hidden | Determines whether reports include a section about setup problems.
Default: bottom |
report.suppressed_msgs=true|false | Determines whether reports include suppressed messages. Default: false |
report.test_params=true|false | Determines whether reports include test parameter details. Default: false |
| This setting specifies a custom parameter Id to be added to the xml report root element. The Id needs to be unique. Both For example, the following configuration specifies that an attribute with the given key and value will be added to the xml report root element:
|
| This setting specifies a custom parameter value to be added to the xml report root element. Both For example, the following configuration specifies that an attribute with the given key and value will be added to the xml report root element:
|
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 [coverage_type]: LC - for line coverage |
session.tag=[name] | Specifies a session tag used to label these results. This value is used for uploading summary results to DTP. The tag is an identifier of the module checked during the analysis process. Reports for different modules should be marked with different tags. Default: |
tasks.source.control.details=true|false | This setting specifies if additional information from source control, such as revisions and comments, is included in the report. |
Parasoft DTP Settings
Setting | Purpose |
---|---|
dtp.enabled=true|false | Determines whether the current C/C++test installation is connected to DTP. |
dtp.url=[url] | Specifies the URL to the DTP server. If DTP is deployed to a location other than the root of the host server, the URL should include a context path (a relative path from the host name). This may be the case if your organization uses a reverse proxy. Refer to the DTP documentation for additional information about reverse proxy server configuration and context path configuration. Example: Example including a context path: |
dtp.user=[username] | Specifies the username for DTP server authentication. |
dtp.password=[password] | Specifies the password for DTP server authentication. We highly recommend that you use an encoded password to ensure successful authentication and increase the level of security; see Creating an Encoded Password. |
| Enables or disables reporting results to DTP server. |
dtp.project=[project_name] | Specifies the name of the DTP project that you want these results linked to. |
dtp.additional.settings=[KEY1\=VALUE1\nKEY2\=VALUE2...] | Specifies advanced settings for reporting results to DTP. |
dtp.autoconfig=true|false | Enables autoconfiguration with C/C++test settings stored on the DTP server. |
Licensing Settings
See Setting the License in a Local File or a DTP Project for additional notes and examples.
Setting | Purpose |
---|---|
parasoft.eula.accepted=true|false | Allows you to accept the terms of Parasoft End User License Agreement (EULA). Default: false |
cpptest.license.use_network=true|false | Enables or disables retrieving a network license. Example: Default: true By default, C/C++test will try to retrieve a license from License Server on the DTP configured as your primary DTP server; see Parasoft DTP Settings. If you want to configure another License Server, enable the |
cpptest.license.local.password=[password] | Specifies the local password that you want C/C++test to use. |
cpptest.license. local.expiration=[expiration] | Specifies the expiration date of the local license. Default: 0 |
cpptest.license. network.edition=[edition_name] | Specifies the type of the network license that will be retrieved from the Licence Server. This setting requires that the Acceptable edition names:
Default: Example: The following configuration enables the license optimized for desktop usage. |
cpptest.license.custom_edition_features=[feature name] | Specifies the features you want to enable in the custom edition of the C/C++test license. You can use a comma-separated list to specify multiple features. Acceptable feature names:
|
cpptest.license.wait.for.tokens.time=[time in minutes] | Specifies the time that C/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 Default: 0 |
cpptest.license.autoconf.timeout=[seconds] | Specifies the maximum number of seconds C/C++test will wait for the license to be automatically configured from License Server. Default: 20 |
license.network.use.specified.server =true|false | Enables or disables retrieving the license from a custom License Server (either standalone or deployed on another instance of the DTP server) specified with the Example: Default: false |
license.network.url=[url] | Specifies the URL of the License Server (either standalone or deployed on another instance of the DTP server) used to obtain the license. It requires the If DTP is deployed to a location other than the root of the host server, the URL should include a context path (a relative path from the host name). This may be the case if your organization uses a reverse proxy. The context path is not supported for a standalone License Server. Refer to the DTP documentation for additional information about reverse proxy server configuration and context path configuration. The context path is not supported for a standalone License Server. Example: Example including a context path: license.network.url=https://aurelia.mycompany.com:8443/contextPath |
| Enables or disables authentication on the License Server specified with the It requires the |
license.network.user=[username] | Specifies the username for authentication on the License Server specified with the Example: |
license.network.password=[password] | Specifies the password for authentication on the License Server specified with the Example: |
OpenID Connect Settings
Setting | Purpose |
---|---|
oidc.enabled= | Enables or disables user authentication via OpenID Connect. The default is |
oidc.issuer.uri=[uri] | Specifies the URI of the OpenID Connect server where your DTP is registered. |
oidc.client.id=[id] | Specifies the ID registered on your OpenID Connect server. |
oidc.client.secret=[password] | Specifies the password provided by your OpenID Connect server. |
oidc.cli.mode=devicecode|certificate | Specifies the method that will be used to authenticate the user on the OpenID Connect server. If set to If set to Default: |
oidc.devicecode.token.file | Specifies the path to the custom token file containing user authentication information. For example:
|
oidc.keystore=[path] | Specifies the path to the keystore file that stores the certificate to authenticate the user on the OpenID Connect server. |
oidc.keystore.password=[password] | Specifies the password to the the keystore file that stores the self-signed client certificate. We highly recommend that you use an encoded password to ensure successful authentication and increase the level of security; see Creating an Encoded Password. |
oidc.keystore.alias=[alias] | Specifies the alias you want to use to authenticate on the OpenID Connect server. You may need to configure this setting if your keystore file contains multiple entries. Example: |
oidc.callback.host=localhost | 127.0.0.1 | This setting specifies the local callback host configured in the IDE to communicate with the OpenID Connect server. This is an IDE-related setting and is not intended for command line use. The default is |
oidc.callback.port=0 | [port number] | This setting specifies the callback port number configured in the IDE to communicate with the OpenID Connect server. This is an IDE-related setting and is not intended for command line use.
The default is |
oidc.callback.timeout=[seconds] | This setting specifies the maximum time allowed for providing user credentials on the authentication page to authenticate on DTP via OpenID Connect when working with C/C++test in the IDE. This is an IDE-related setting and is not intended for command line use. The default is |
Technical Support Settings
Setting | Purpose |
---|---|
techsupport.auto_creation=true|false | Determines whether archives are automatically prepared when testing problems occur. Default: false |
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. Default: false |
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.
Default: false |
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. Default: false |
techsupport.item.general=true|false | Determines whether general application logs are included. Default: false |
techsupport.item.environment=true|false | Determines whether environment variables, JVM system properties, platform details, additional properties (memory, other) are included in the archive. Default: false |
techsupport.advanced=true|false | Specifies if advanced options will be sent. Default: false |
techsupport.advanced.options=[option] | Specifies any advanced options that the support team asked you to enter. Default: false |
techsupport.dtp.engine=true|false | Specifies if additional data generated during analysis will be sent. Default: false |
Authorship/Scope Settings
Setting | Purpose |
---|---|
authors.mapping{n}=[from_user, to_user] | Specifies a specific author mapping. For example:
|
authors.user{n}=[username, email, full_name] | Specifies a specific author name and email. 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. Default: false |
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. Default: false |
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. Default: true |
scope.recommended.computation=first|random | Determines how C/C++test selects the Recommended Tasks for each team member—it can choose n tasks at random (the default) or select the first n tasks reported (n is the maximum number of tasks that C/C++test is configured to show each team member per day) |
scope.xmlmap=true|false | Determines whether task assignment is computed 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). Default: true |
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. |
Source Control Settings
Git Repository Definition Properties
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., git://hostname/repo.git). |
scontrol.rep.git.workspace= | The directory containing the local git repository. |
Perforce Repository Definition Properties
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). |
Subversion Repository Definition Properties
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., svn://buildmachine.foobar.com/home/svn). |
scontrol.rep.svn.login= | Login name. |
scontrol.rep.svn.password = | Password (not encoded). |
scontrol.svn.exec= | Path to external client executable (svn ). |
Microsoft Team Foundation Server Repository Definition Properties
Property | Description |
---|---|
scontrol.rep.type=tfs | TFS repository type identifier. |
scontrol.rep.tfs.url= | TFS repository URL (for example, http://localhost:8080/tfs ). |
scontrol.rep.tfs.login = | TFS username. Ensure you provide the same username that you used to configure the TFS repository on your machine. |
scontrol.rep.tfs.password= | TFS password. |
File Encoding Settings
Setting | Purpose |
---|---|
fileencoding.mode=default|user|auto | Defines how file encoding is calculated.
Default: default |
fileencoding.user-encoding=<name_of_encoding> | If Valid names are ASCII-US, UTF-8, UTF-16, UTF-16LE, UTF-16BE or java.nio canonical name. It should be specified in form |
fileencoding.auto-language=<language’s numeric_code> | If
|
Miscellaneous Settings
Setting | Purpose |
---|---|
console.verbosity.level=low|normal|high | Specifies the verbosity level for the Console view. Available settings are:
Default: low |
tasks.clear=true|false | Clears existing tasks upon startup in cli mode. This prevents excessive time being spent "loading existing results." Default: true |
| Indicates where user-defined rules are saved. |
| 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. |
exec.env=[env1; env2; ...] | Specifies a list of tags that describe the environment where a test session was executed. Tags could describe an operating system (e.g. Windows, Linux), an architecture (e.g. x86, x86_64), a compiler, a browser, etc. These tags describe a complete test session; more environment details could be also added at the test suite, test, or test case levels via the services API. |
issue.tracking.tags=[value] | Specifies custom issue tracking tags. Multiple tags can be separated by a comma. For example:
For more details, see Associating Tests with Development Artifacts. |
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. Default: Auto |
parallel.max_threads=<number> | Specifies the maximum number of parallel threads that can be executed simultaneously. The actual number of parallel threads is determined based on the number of CPUs, available memory, and license settings. Default: [available_processors] |
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. Default: 25 |
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 Parasoft Test. Default: false |
cpptest.fail.setup.problems =true|false | Enables or disables returning the Default: false |
cpptest.advanced.settings.file=[path] | Specified the path to the advanced settings file; see Configuring Advanced Options. |
| Enables or disables collecting anonymous usage information and sending it to Parasoft. Read our privacy statement to learn more at https://www.parasoft.com/privacy-policy. Default: false |
Using Variables in Settings Files
See General Variables for information about variables that can be used in report, e-mail, Parasoft DTP, and license settings.
Examples
Example 1
# 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
Example 2
# Parasoft DTP settings dtp.enabled==true dtp.url=https://server1.mycompany.com:8443 dtp.user=smith dtp.password=?1q2W3e4R5t6Y7u8I9o! # 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
Example 3
# 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 # 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 #network license retrieved from DTP dtp.enabled=true dtp.url=https://onya.mycompany.com:8443 dtp.user=user1 dtp.password=mypassword cpptest.license.use_network=true # SOURCE CONTROL scontrol.rep1.type=cvs scontrol.rep1.cvs.root=:pserver:developer@cvs_server.domain.com:/home/cvs/scontrol.rep1.cvs.pass=mypassword