Undefined Labs is now a part of Datadog! Learn more

Scope

CI Visibility

Test Aggregation

Test runs and the test status is aggregated at the commit level.

This allows us to point out when tests exhibit flakiness and lets you analyze every test run that occurred against a given commit.

Fine-Grained Details of Your Entire System

Distributed Tracing

Production-level observability gives you fine-grained details to know the exact behavior of the entire system as your tests are executed, whether it's a unit test or an integration test across dozens of external services.

Know exactly what your test is doing and identify the exact service and request responsible for test failure or increased latency.

We bring production-level visibility into every test.

Logs & Events

View only the structured logs and events output for the specific test run you're investigating, ordered by time. Be as verbose with your log output as you want and run your tests in parallel without having to worry about exporting your CI logs to another tool just to make sense of them.

Use filters to find the exact logs you're looking for.

Logs and events from every service involved in the test transaction are captured and sorted by time.

Exceptions

Every error is captured and contextualized, whether its thrown by your service or a dependency. See relevant metadata, the source code that threw the error, the symbolicated stacktrace, and more.

Gain immediate context with source code shown from right within the stacktrace.

Code Path

Scope captures per-test code coverage for each individual test run. This allows comparison between two different test runs, to identify differences in the code executed. Code Path is also leveraged by our Intelligent Test Runner to identify whether the test has been impacted by a given commit.

View the exact files and lines of code each test run traversed, along with the number of executions.

Uncover Insights Using Historical Data for Every Test

Test Code

Quick access to the test code makes for easy referencing without having to dig through source code.

You have quick access to the test code without needing to search for it.

History

See at a glance every commit a test was run against along with the test status. Debugging is easier when you're a single click away from viewing the commit diff between any two commits in which the test ran.

See every commit that has run the test you're investigating.

Want to know what code changes were introduced between a passing and failing test? Click compare to view the git diff between the two commits.

Performance

Identify trends and spot outliers in test performance to reduce the number of performance regressions landing in production. Scope also supports benchmark tests.

Quickly spot the commit that introduced a performance regression.

Everything You Need to Understand and Debug Any Test in 5 Minutes

Simple to include libraries remove the need for manual instrumentation (.NET, Java, Node.js, Javascript, iOS) or make it much easier (Go).

Add our agent as a dependency to your Maven or Gradle project. For example, in your pom.xml:

<properties>
<scope.agent.version>0.2.4</scope.agent.version>
</properties>
...
<dependency>
<groupId>com.undefinedlabs.scope</groupId>
<artifactId>scope-agent</artifactId>
<version>${scope.agent.version}</version>
<scope>provided</scope>
</dependency>

Then, configure a Maven plugin or Gradle task to use our agent (see how in our documentation).

Finally, set the Scope DSN as an environment variable:

export SCOPE_DSN=REPLACE_WITH_DSN

After this, you can run your tests as you normally do. For example, with Maven:

mvn clean verify

For more information you may refer to our documentation.