Rider持续移除解决方案中的测试项目及Unity测试执行问题求助
解决Rider 2018 + Unity 2018的两类测试项目问题
一、测试项目无故从解决方案消失的修复方案
这个问题大概率是Unity与Rider的解决方案同步机制和你频繁切换.NET框架版本导致的冲突——Unity会自动重新生成解决方案文件,若测试项目的框架版本和Unity主项目不匹配,就容易被排除在外。试试这些实操步骤:
统一.NET框架版本,停止来回切换
- 直接把主项目和测试项目都锁定为
.NET Framework 4.7.2(Unity 2018兼容的4.x版本):- 在Unity编辑器中打开
Edit > Project Settings > Player > Other Settings > Configuration,将Scripting Runtime Version设为.NET 4.x Equivalent,重启Unity和Rider - 在Rider中右键测试项目,选择
Properties > Application,把目标框架改成和Unity一致的4.x版本
- 在Unity编辑器中打开
- 直接把主项目和测试项目都锁定为
手动控制解决方案同步,避免自动覆盖
- 打开Rider的
Settings > Languages & Frameworks > Unity Engine,取消勾选Automatically refresh Unity project,改用工具栏的Sync with Unity按钮手动同步 - 添加测试项目后,立刻手动保存整个解决方案(
File > Save All),防止Unity自动生成解决方案时覆盖掉你的修改
- 打开Rider的
确认测试项目的包含状态
- 在Rider的解决方案窗口右键点击测试项目,选择
Include in Project(如果有该选项) - 直接打开解决方案文件(
.sln),检查测试项目的<Project>节点是否被标记为Excluded,如果有就删掉这个标记
- 在Rider的解决方案窗口右键点击测试项目,选择
减少Unity自动生成项目的范围
- 在Unity的
Edit > Preferences > External Tools里,取消勾选Generate all .csproj files,只保留必要的项目文件,降低自动生成时的冲突概率
- 在Unity的
二、Unity内置测试在IDE中正常执行的配置方法
Unity通过Create > Testing > Test Assembly Folder创建的测试属于Unity Test Framework (UTF),和普通NUnit项目结构不同,需要针对IDE做特殊配置:
确保Rider启用了Unity测试插件
- 打开Rider的
Settings > Plugins,搜索Unity Test Runner,确认它处于启用状态(Rider 2018默认自带,但建议检查一遍)
- 打开Rider的
给测试类添加正确的UTF特性
- 你的测试类必须使用UTF专属的特性,不能只用普通NUnit标记:
- Edit Mode测试:类需放在Edit Mode Assembly中,添加
[Test]特性即可 - Play Mode测试:类需放在Play Mode Assembly中,使用
[UnityTest]特性(方法要返回IEnumerator)
- Edit Mode测试:类需放在Edit Mode Assembly中,添加
- 示例代码:
using NUnit.Framework; using UnityEngine.TestTools; // Edit Mode测试示例 public class SampleEditModeTest { [Test] public void EditModeTest_Passes() { Assert.IsTrue(true); } } // Play Mode测试示例 public class SamplePlayModeTest { [UnityTest] public IEnumerator PlayModeTest_Passes() { yield return null; Assert.IsTrue(true); } }
- 你的测试类必须使用UTF专属的特性,不能只用普通NUnit标记:
在Rider中直接运行Unity测试
- 打开Rider的
Window > Tests面板(快捷键Alt+6) - 在测试面板左上角,选择
Unity Test Runner作为当前测试会话(而非普通NUnit会话) - 此时就能看到所有Unity测试,点击运行按钮即可直接在IDE内执行,无需切换到Unity
- 打开Rider的
VS 2017识别测试的补充配置(可选)
- 确保VS安装了
Unity Test Framework插件 - 在Unity中执行
Assets > Open C# Project,让Unity重新生成适配VS的项目文件
- 确保VS安装了
内容的提问来源于stack exchange,提问作者Jarek
相关产品推荐
相关产品推荐

