我创建了以下结构:
├── Assets
├── Scenes
├── Scripts
│ └── MyExample.cs
├── Tests
│ ├── MyExampleTest.cs
│ └── Tests.asmdef
现在,当我在Unity中点击“运行全部”时,在测试运行器窗口中出现以下错误:
The type or namespace name `MyExample' could not be found. Are you missing an assembly reference?
我在Visual Studio中有两个项目:
Assembly-CSharp(包含src)
Tests(包含Tests)
我将Assembly-CSharp添加为第二个项目的引用。Visual Studio能够无错误地构建解决方案。
有人知道如何为Unity项目正确设置单元测试回归吗?
这是Tests.asmdef。
{
"name": "Tests",
"optionalUnityReferences": [
"TestAssemblies"
]
}
我的示例测试.cs
using UnityEngine;
using UnityEngine.TestTools;
using NUnit.Framework;
using System.Collections;
using abc;
public class MyExampleTest{
[Test]
public void NewTestScriptSimplePasses() {
// Use the Assert class to test conditions.
}
[UnityTest]
public IEnumerator NewTestScriptWithEnumeratorPasses() {
abc.Example m;
Assert.That(false);
yield return null;
}
}
我的示例.cs
namespace abc
{
public class Example
{
}
}