Advanced configuration
Organize tests in batches
You can aggregate tests that are run in different processes, or in different Eyes instances, under the same batch. This is done by providing the same batch ID to these tests. For more information, see How to organize your tests with batches.
BatchInfo
Configures the batch for one or more tests. For details see How Eyes compares checkpoints and baseline images
Syntax
let batch = BatchInfo(name: "the batch name")
batch.batchId = UUID().uuidString
eyes.batch = batch
Configuration class
Creates a configuration object that is used to configure an Eyes object by assigning it to the Eyes configuration
property.
You can use this configuration object instead of using the various Eyes methods and properties that set the same attributes. Typically you set up a Configuration object by calling its setXXXX
methods chained with a '.' in a Fluent coding style.
Test results
The results of the test can be consumed as the return value from eyes.close
. following is an example for creating a formatted output string out of the TestResultsSummary
object:
func format(testResultsSummary: TestResultsSummary) -> String {
let testResults = testResultsSummary.getAllResults().first!.testResults
return """
Test name : \(testResults.name)
Test status : \(testResults.status)
URL to results : \(testResults.url)
Total number of steps : \(testResults.steps)
Number of matching steps : \(testResults.matches)
Number of visual diffs : \(testResults.mismatches)
Number of missing steps : \(testResults.missing)
Display size : \(testResults.hostDisplaySize)
Steps :
\(testResults
.stepsInfo
.map { step in
return "\(step.name) - \(getStepStatus(step))"
}
.joined(separator: "\n"))
"""
}
func getStepStatus(step: StepInfo) -> String {
if step.isDifferent {
return "Diff"
} else if !step.hasBaselineImage {
return "New"
} else if !step.hasCurrentImage {
return "Missing"
} else {
return "Passed"
}
}
Configure proxy
If your company's network requires requests to go through the corporate proxy, you can configure it as follows:
eyes.proxy = AbstractProxySettings(uri: "'http://yourproxy.com", port: 8000)
// provide username and password:
eyes.proxy = AbstractProxySettings(uri: "'http://yourproxy.com", username: "user", password: "pass")