You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:macOS命令行无法批量运行Unity3D单元测试

macOS下CLI批量运行Unity单元测试的解决方案

我之前在macOS上折腾Unity CLI测试的时候也踩过类似的坑,明明装了Mono、MSBuild和NUnit控制台,就是没法批量跑测试。结合你的场景,给你几个亲测有效的解决方向:

1. 优先用Unity自带的CLI命令(最可靠)

Unity本身提供了专门的CLI参数来运行测试,完全不需要依赖外部的NUnit控制台,能完美处理批量执行的问题,还能避免程序集依赖的坑。

在终端里执行类似这样的命令:

/Applications/Unity/Hub/Editor/2022.3.10f1/Unity.app/Contents/MacOS/Unity \
  -batchmode \
  -projectPath /Users/you/YourUnityProject \
  -runTests \
  -testResults /Users/you/test-results.xml \
  -testPlatform editmode
  • -batchmode:让Unity在后台静默运行,不打开图形界面
  • -runTests:触发测试执行流程
  • -testResults:指定测试结果XML文件的保存路径,方便后续查看报告
  • -testPlatform:选editmode运行编辑模式测试,选playmode运行运行时测试

这个命令会自动执行项目里所有符合条件的测试,不需要额外处理程序集路径。

2. 如果坚持用NUnit控制台,要选对程序集路径

Unity的单元测试编译后的程序集不是常规C#项目的输出,而是存放在项目的Library/ScriptAssemblies目录下:

  • 编辑模式测试:Assembly-CSharp-Editor.dll
  • 运行时测试:Assembly-CSharp.dll

用NUnit 3控制台执行的正确命令应该是:

nunit3-console /Users/you/YourUnityProject/Library/ScriptAssemblies/Assembly-CSharp-Editor.dll

注意要确保你装的是nunit3-console(NUnit 3.x版本),因为Unity 2020+的测试框架基于NUnit 3,旧版的nunit-console(NUnit 2.x)会有兼容性问题,导致部分测试无法运行。

3. 版本兼容性检查

  • 打开你的Unity项目,查看Packages/NUnit文件夹下的版本号,确保你安装的nunit3-console版本和它尽量接近
  • 可以用nunit3-console --version查看控制台版本,版本差异过大可能导致测试发现不全

4. 批量过滤特定测试(可选)

如果不想运行所有测试,只想批量跑某类测试,可以加过滤参数:

  • 用Unity CLI的话,添加-testFilter:
    ... -testFilter "YourTestNamespace.YourTestClass"
    
  • 用NUnit控制台的话,添加--where参数:
    nunit3-console your.dll --where "namespace=YourTestNamespace"
    

内容的提问来源于stack exchange,提问作者Martin Gonzalez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:32:33