试图在Unity中自动运行UnitTests

时间:2018-04-11 07:06:50

标签: c# unit-testing unity3d nunit

我正在尝试做这样的事情

class CustomPreProcessBuild : IPreprocessBuild
{
    public void OnPreprocessBuild(BuildTarget _target, string _builtPath)
    {
        Debug.Log("CustomPreProcessBuild-OnPreprocessBuild for target " + _target + " at path: " + _builtPath);

        // TODO: run tests
        Debug.Log("Reminder! Run unit tests before building the project");
    }
}

正如我的代码示例所描述的,我想在执行Build命令之前自动运行所有单元测试。 有没有办法从Unity中的C#代码自动运行所有UnitTests?

我正在使用2017.3

2 个答案:

答案 0 :(得分:1)

据我所知,你还不能从脚本调用测试。虽然我对你正在运行的版本不太熟悉。但是,我确实在一段时间内看到了Batch类的反映,目的是调用。但现在似乎无法为我的生活找到它。

您可以从命令行运行它们,因此我猜您可以尝试通过System.Diagnostics命名空间中的进程运行它。不确定Unity会如何运行两个,因为测试运行程序使用Unity exe,但是,它值得一试!

答案 1 :(得分:0)

您需要使用Unity Test Runner。这是文档: https://docs.unity3d.com/Manual/testing-editortestsrunner.html

如果您不使用此测试运行器,您将无法测试MonoBehavior衍生产品(您的自定义组件)。