在Rider中运行Unity测试时报错The assembly for this test is not found怎么解决?
错误触发原因
- 测试程序集配置错误:测试代码未放在标记为测试程序集的asmdef(程序集定义文件)对应的目录下,或测试asmdef未引用
UnityEngine.TestRunner、UnityEditor.TestRunner必要依赖 - Rider与Unity项目不同步:Rider缓存了旧的项目结构,与Unity实际生成的程序集配置不匹配
- 编译失败:测试代码所在的程序集存在编译报错,未成功生成对应程序集文件
- 版本不兼容:项目使用的Unity Test Framework包版本与Rider内置的Unity测试插件版本不匹配
- 运行配置不匹配:Rider测试运行的目标平台与Unity当前设置的构建目标平台不一致,对应平台的测试程序集未生成
解决方案
1. 修正测试程序集配置
- 所有测试代码统一放在单独的测试目录中,在该目录下创建asmdef文件,勾选Test Assembly选项
- 测试asmdef的依赖项中必须添加
UnityEngine.TestRunner和UnityEditor.TestRunner,如果是Editor模式测试,需额外勾选Only reference Editor assemblies - 禁止将测试代码放在非测试类型的asmdef目录下,避免程序集未被识别为测试程序集
2. 同步Rider与Unity的项目结构
- 回到Unity编辑器,点击顶部菜单栏
Assets > Open C# Project触发完整项目文件生成,自动同步Rider的项目配置 - 若同步后仍然报错,关闭Rider,删除项目根目录下的所有
.sln、.csproj文件,以及Library、Temp目录,重新打开Unity等待编译完成后再启动Rider - 确认Rider的Unity插件处于启用状态:打开
File > Settings > Plugins找到Unity插件,确认开启且版本与当前Unity版本兼容
3. 排查编译与配置错误
- 优先处理Unity控制台的所有编译报错,确保测试所在的程序集可以正常编译完成
- 确认测试类添加了
[TestFixture]属性、测试方法添加了[Test]/[UnityTest]属性,没有语法或配置错误 - 清除Rider旧的测试运行配置:点击顶部菜单栏
Run > Edit Configurations,删除已有的测试配置,重新选中测试用例触发运行自动生成新配置
4. 匹配运行平台
- 确认Unity编辑器当前设置的构建目标平台,与Rider测试运行配置中指定的平台完全一致
内容的提问来源于stack exchange,提问作者Ambroise Rabier
相关产品推荐
相关产品推荐

