CoverageTestRunner.md 3.6 KB

Using Code Coverage with Test Runner

When running your tests in the Test Runner you can generate an HTML report which shows which lines of your code the tests cover. This includes both EditMode and PlayMode tests.

If Auto Generate Report is checked then an HTML report will be generated and a file viewer window will open up containing the coverage results and the report. Otherwise, select the Generate from Last button to generate one. The results are based on the assemblies specified in Included Assemblies.

Steps

  1. Open the Code Coverage window (go to Window > Analysis > Code Coverage).

    Code Coverage Window

  2. Select Enable Code Coverage if not already selected, to be able to generate Coverage data and reports.
    Enable Code Coverage
    Note: Enabling Code Coverage adds some overhead to the editor and can affect the performance.

  3. Select the Assembly Definitions you would like to see the coverage for. In this example we selected Assembly-CSharp and Assembly-CSharp-Editor. By default, Unity compiles almost all project scripts into the Assembly-CSharp.dll managed assembly and all editor scripts into the Assembly-CSharp-Editor.dll managed assembly.

    Select Assemblies

  4. Switch to the Test Runner and run your EditMode or PlayMode test(s).

    Run Tests in Test Runner

Example test:

  using NUnit.Framework;
  using Assert = UnityEngine.Assertions.Assert;

  public class EditorTests
  {
     [Test]
     public void MyPublicClass_PublicFunctionCanBeCalled()
     {
         MyPublicClass myPublicClass = new MyPublicClass();
         Assert.IsTrue(myPublicClass.MyPublicFunction());
     }   
  }
  1. When the test(s) finish running, a file viewer window will open up containing the coverage report.
    Note: To generate the report automatically after the Test Runner has finished running the tests you should have Auto Generate Report checked in the Code Coverage window. Alternatively, you can select the Generate from Last button.

  2. Select index.htm.

    Report File Viewer

  3. This opens the HTML coverage report.

    HTML Coverage Report

Getting results for EditMode and PlayMode tests

Coverage data are generated from the last set of tests that were run in the Test Runner.

Note: Currently the Test Runner does not support EditMode and PlayMode tests running at the same time. To include coverage for both EditMode and PlayMode tests, these will need to run separately. In this case, the last Coverage Report generated will include the combined coverage of EditMode and PlayMode tests.

If a fresh start is required, select the Clear Data button to clear the Coverage data from all previous test runs for both EditMode and PlayMode tests.