Version: 2020.3
public static TestTools.CoveredMethodStats GetStatsFor (MethodBase method);

参数

method 要为其获取覆盖率统计信息的方法。

返回

CoveredMethodStats 覆盖率摘要。

描述

为指定方法返回覆盖率摘要。请参阅 CoveredMethodStats 以了解有关此方法返回的覆盖率统计信息的更多信息。

using UnityEngine;
using UnityEngine.TestTools;
using System.Reflection;

public class CoverageClass { // A simple test method to get coverage information from. // If the method is called with incrementValue set to true, // the method will have complete coverage. If incrementValue // is false, the coverage will be incomplete. public int CoveredMethod(bool incrementValue) { int value = 0; if (incrementValue) { value++; }

return value; } }

public class CoverageExample : MonoBehaviour { void Start() { // Create an instance of the test class and call the test method // to make sure the method has had some coverage. Note in this example, // we're passing false into the method to make sure the coverage // is incomplete. CoverageClass coverageClasss = new CoverageClass(); int value = coverageClasss.CoveredMethod(false);

// Use reflection to get the MethodBase for CoverageClass.CoveredMethod MethodBase coveredMethodBase = typeof(CoverageClass).GetMethod("CoveredMethod"); // And get the coverage stats for the method. CoveredMethodStats stats = Coverage.GetStatsFor(coveredMethodBase);

Debug.Log("CoveredMethod has " + stats.totalSequencePoints + " sequence points"); int coveredSequencePoints = stats.totalSequencePoints - stats.uncoveredSequencePoints; Debug.Log("of which " + coveredSequencePoints + " were covered."); } }

public static CoveredMethodStats[] GetStatsFor (MethodBase[] methods);

参数

methods 方法数组。

返回

CoveredMethodStats[] 覆盖率摘要数组。

描述

为指定方法数组返回覆盖率摘要数组。

using UnityEngine;
using UnityEngine.TestTools;
using System.Reflection;
using System;

// A simple test class to get coverage information for. public class CoverageClass { public bool CoveredMethod1() { return true; }

public bool CoveredMethod2() { return false; } }

public class CoverageExample : MonoBehaviour { void Start() { // Create an instance of the test class and call the test methods // to make sure the class has had some coverage. CoverageClass coverageClasss = new CoverageClass(); coverageClasss.CoveredMethod1(); coverageClasss.CoveredMethod2();

// Get the Type of the CoverageClass Type coverageClassType = typeof(CoverageClass);

// Use reflection to get an array of MethodBases for the two methods // in CoverageClass. MethodBase[] coveredMethodBaseArray = { coverageClassType.GetMethod("CoveredMethod1"), coverageClassType.GetMethod("CoveredMethod2") };

// And get the coverage stats for the methods. CoveredMethodStats[] stats = Coverage.GetStatsFor(coveredMethodBaseArray);

for (int i = 0; i < stats.Length; i++) { Debug.Log("Method Name: " + stats[i].method.ToString()); Debug.Log("Method has " + stats[i].totalSequencePoints + " sequence points"); int coveredSequencePoints = stats[i].totalSequencePoints - stats[i].uncoveredSequencePoints; Debug.Log("of which " + coveredSequencePoints + " were covered."); } } }

public static CoveredMethodStats[] GetStatsFor (Type type);

参数

type 类型。

返回

CoveredMethodStats[] 覆盖率摘要数组。

描述

为指定类型返回覆盖率摘要数组。

using UnityEngine;
using UnityEngine.TestTools;
using System;

// A simple test class to get coverage information for. public class CoverageClass { public bool CoveredMethod1() { return true; }

public bool CoveredMethod2() { return false; } }

public class CoverageExample : MonoBehaviour { void Start() { // Create an instance of the test class and call the test methods // to make sure the class has had some coverage. CoverageClass coverageClasss = new CoverageClass(); coverageClasss.CoveredMethod1(); coverageClasss.CoveredMethod2();

// Get the Type of the CoverageClass Type coverageClassType = typeof(CoverageClass); // And get the coverage stats for all of the methods of the type. // Note that this will include class's default constructor. CoveredMethodStats[] stats = Coverage.GetStatsFor(coverageClassType);

for (int i = 0; i < stats.Length; i++) { Debug.Log("Method Name: " + stats[i].method.ToString()); Debug.Log("Method has " + stats[i].totalSequencePoints + " sequence points"); int coveredSequencePoints = stats[i].totalSequencePoints - stats[i].uncoveredSequencePoints; Debug.Log("of which " + coveredSequencePoints + " were covered."); } } }