Environment management is an important feature which avoids storing environment-specific details within your Provar test cases. This allows you to change environment without needing to update your test cases. Environments can be used with all types of Connection, including Salesforce, Database, Web Service, Email and Non-SFDC UI testing Connections.
Salesforce Environment Management
By default, Provar builds and runs test in a single specific Salesforce org, accessed via user details defined in the Connection.
However it is often useful to run the same Provar tests in multiple different Salesforce environments. Depending on your organization, you may want to create and run Test Cases in a Dev sandbox, and then run the same tests against your Full sandbox and again on Production after deployment.
Using Provar’s Environments feature, you can run your tests in additional environments without adding additional Connections.
Note: A specific test environment can also be defined when running Provar via ANT. This is done by referencing the test environment in the Runner Task of the Build.xml file. Refer to Provar Runner Task for more information.
What is an Environment in Provar?
In Provar, an Environment provides a way of varying information on the Connection while inheriting the other Connection details. It is often used to store different Salesforce Environment details, such as sandboxes, which can reuse the same Connection details with only minor modifications. This helps increase reuse and reduce maintenance effort. Environments can also be used for toggling between the Classic and Lightning UIs, since this setting is stored at the Connection level. (If you are interested in using Environments in this scenario, refer to the Lightning Testing module for detailed steps.)
A Salesforce Connection is a user in Salesforce. It is always important to select your users carefully to ensure they have the correct profile for your testing. In addition, when you are using Environment Management, you should first make sure that this logical user is available in all your environments. If you choose a business user for this testing there is a risk that may leave the company and so be disabled after the next sandbox refresh. For this reason you may want to consider adding users into production which will then be copied back to all environments for your testing.
Environments can also be used together with Environment Variables. These are values which are set by the Environment currently in use, but which can be referenced from a Test Case (for example with an If statement). This is useful if you need to apply different logic in the Test Case based on the Salesforce environment in which it is being run.
A good example of using an environment variable is for inbound email testing (email to case). The email address you need to specify will change depending upon the org you are testing against. Using an Environment Variable such as InboundEmailAddress you can reference this in your tests, instead of a hardcoded value.
Setting up Environments
Before setting up Environments, first decide how many Environments you want to set up. You should set up one Environment for each org in which you want to run your Test Cases. The only exception is your default org, which will not need to be set up as an Environment. Your default org should be the first org where you start authoring your Test Cases.
To add a new Environment, navigate to the Test Settings view and select the Environments tab. Click the ‘+’ button to create a new Test Environment:
Supply an Environment Name and Description. This should generally be the name of your sandbox, e.g. Dev. (If you want to use Environments to toggle between the Classic and Lightning UIs, refer to the Lightning Testing module for detailed steps. )
Then click the ‘OK’ button.
Navigate to the Connections tab in Test Settings. To add a new Connection at this point, click the ‘New’ (+) icon in the top-right. Alternatively, if you have already added your Connections, click on your chosen Connection and click the ‘Edit’ icon in the top-right:
Once on the Connection edit screen, add the new Connection information if needed, then click the ‘+’ button in the Overrides section:
Select the Environment created earlier, then provide the user details for the new test environment:
Note that, if user details are not provided against the Environment, Provar will use the default user details against the Connection when you select this test environment.
Repeat these steps as needed if you are adding multiple new Environments.
To run tests in the new test environment, select this environment in the Test Environment dropdown in the Menubar in the top-right corner of Provar Desktop.
As mentioned above, Provar’s Environments feature has applications beyond simply managing user details of different sandboxes. Refer to the Lightning Testing module for another example of how Environments can be used to run Test Cases in both Classic and Lightning UI and drive different Environment-specific behaviour in the test.