要在编辑器中执行此操作,请打开自动化选项卡,连接到 session 并选择要运行的测试。
您如何从命令行执行此操作?
(注意,不编译 UnrealEngine/Engine/Build/BatchFiles/* 全面涵盖了构建应用程序和编译它。具体来说,鉴于您拥有 100% 乐于编译的代码,您如何启动测试套件)
--
以下是来自最近对 4.10 的测试的更多信息:
从编辑器运行测试:
UE4Editor Project.uproject -ExecCmds="Automation RunTests MyTest"
注意
-Game
的缺失旗帜;这将启动编辑器并在编辑器控制台中成功运行测试。运行游戏引擎并使用“弹出日志窗口”:
UE4Editor Project.uproject -Game -ExecCmds="Automation RunTests MyTest" -log
这会在“播放”模式下运行游戏,弹出一个编辑器窗口;但是,日志停在:
LogAssetRegistry: FAssetRegistry took 0.0004 seconds to start up
...并且游戏永远不会关闭或执行测试。
运行游戏引擎并记录到文件:
UE4Editor Project.uproject -Game -ExecCmds="Automation RunTests MyTest" -log=Log.txt
这会在“播放”模式下运行游戏,然后停止并且永远不会存在。
它似乎没有运行任何测试或记录到任何文件。
文件夹
Saved/Logs
退出正在运行的游戏后不存在。在编辑器中运行,测试类型等...
见:https://answers.unrealengine.com/questions/358821/hot-reload-does-not-re-compile-automation-tests.html ,
测试不支持热重载;所以这不是一个选择。
在各个地方也有一些建议,测试类型(例如
ATF_Game
, ATF_Editor
)对是否运行或可以运行有一些影响;也许这是一个问题,但我尝试了各种组合但没有成功。--
我已经尝试了各种尝试使这项工作发挥作用的事物组合,但没有成功,所以是时候获得赏金了。
我会接受一个可靠的答案:
最佳答案
是的,没有人对这里或问题跟踪器有任何想法。
在对 UE4 源代码进行了一些认真的挖掘之后,这是实际的处理,我将其留给下一个无法弄清楚的受苦灵魂:
要从命令行运行测试,并在测试运行后记录输出并退出,请使用:
UE4Editor.exe path/to/project/TestProject.uproject
-ExecCmds="Automation RunTests SourceTests"
-unattended
-nopause
-testexit="Automation Test Queue Empty"
-log=output.txt
-game
在 OSX 上使用
UE4Editor.app/Contents/MacOS/UE4Editor
.请注意,无论您提供什么,日志最终都将放置在:
WindowsNoEditor/TestProject/Saved/Logs/output.txt
或者
~/Library/Logs/TestProject/output.txt
请注意,对于 mac,这是在您的项目目录之外,例如,
/Users/doug/Library/Logs/TestProject
. (谁认为这是个好主意?)(见 https://wiki.unrealengine.com/Locating_Project_Logs#Game_Logs)
您可以使用以下命令列出自动化测试:
-ExecCmds="Automation List"
...然后解析响应以查找要运行的测试;自动化命令可能是链式的,例如:
-ExecCmds="Automation List, Automation RunAll"
关于unreal-engine4 - 你如何从命令行运行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29135227/