【发布时间】:2018-10-17 19:55:24
【问题描述】:
我创建了以下结构:
├── Assets
├── Scenes
├── Scripts
│ └── MyExample.cs
├── Tests
│ ├── MyExampleTest.cs
│ └── Tests.asmdef
现在,当我在 Unity 的 Test Runner 窗口中单击 Run All 时,出现以下错误:
The type or namespace name `MyExample' could not be found. Are you missing an assembly reference?
在 Visual Studio 中,我有两个项目:
Assembly-CSharp(包含 src)
测试(包含测试)
我在第二个项目中添加了 Assembly-CSharp 作为参考。 Visual Studio 能够无错误地构建解决方案。
有人知道如何为 Unity 项目正确设置 UnitTest 回归吗?
这是 Tests.asmdef
{
"name": "Tests",
"optionalUnityReferences": [
"TestAssemblies"
]
}
MyExampleTest.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;
}
}
MyExample.cs
namespace abc
{
public class Example
{
}
}
【问题讨论】:
-
您使用的是哪个版本的 Unity?以防万一,您的 Tests.asmdef 文件是否引用了仅作为编辑器的测试程序集?否则,请注意 Unity 单元测试需要位于 Editor 文件夹中。
-
@sonny 我用文件 Tests.asmdef 更新了问题。 Unity 版本 2018.1.0f2
-
在Visual Studio中添加引用似乎在Unity中无效。当我关闭并重新打开时,不再设置参考
标签: c# unit-testing unity3d