Version: 6000.3
语言: 中文
从代码运行测试
检索测试结果

指定要运行的测试

若要从代码运行测试,请调用ExecuteTestRunnerApi 上,并指定要使用 Filter 运行哪些测试。

以下示例在项目中运行所有播放模式测试:

var testRunnerApi = ScriptableObject.CreateInstance<TestRunnerApi>();
var filter = new Filter()
{
    testMode = TestMode.PlayMode
};
testRunnerApi.Execute(new ExecutionSettings(filter));

多个筛选值

您可以在Filterclass 创建更具体的过滤器。

许多字段允许多个值。当您为一个字段定义多个值时,测试运行程序测试框架包(以前称为测试运行程序)是一个 Unity 工具,可在编辑模式和播放模式下测试代码,也可以在目标平台(如独立、Android 或 iOS)上测试代码。更多信息
请参阅术语表
运行与至少一个值匹配的任何测试。

以下示例使用与提供的两个名称之一匹配的全名运行测试:

var api = ScriptableObject.CreateInstance<TestRunnerApi>();
api.Execute(new ExecutionSettings(new Filter()
{
    testNames = new[] {"MyTestClass.NameOfMyTest", "SpecificTestFixture.NameOfAnotherTest"}
}));

多个筛选器字段

如果在筛选器上定义多个字段,则运行器仅运行与所有字段匹配的测试。

在此示例中,它运行指定程序集中的任何测试,其名称与两个指定的测试名称中的任何一个匹配。

var api = ScriptableObject.CreateInstance<TestRunnerApi>();
api.Execute(new ExecutionSettings(new Filter()
{
    assemblyNames = new [] {"MyTestAssembly"},
    testNames = new [] {"MyTestClass.NameOfMyTest", "MyTestClass.AnotherNameOfATest"}
}));

多个构造函数过滤器

执行设置在其构造函数中采用一个或多个筛选器。如果未提供筛选器,则默认情况下它会运行所有编辑模式测试。如果提供了多个筛选器,则如果测试与任何筛选器匹配,则运行测试。

下面运行名为MyTestAssembly名称与两个指定测试名称之一匹配的任何测试:

var api = ScriptableObject.CreateInstance<TestRunnerApi>();
api.Execute(new ExecutionSettings(
    new Filter()
    {
        assemblyNames = new[] {"MyTestAssembly"},
    },
    new Filter()
    {
        testNames = new[] {"MyTestClass.NameOfMyTest", "MyTestClass.AnotherNameOfATest"}
    }
));

注意:在每个测试中指定不同的测试模式或平台Filter当前不支持。测试模式和平台从第一Filter仅,如果未提供,则默认为“编辑模式”。

其他资源

从代码运行测试
检索测试结果