要在编辑器中执行此操作,请打开自动化选项卡,连接到会话并选择要运行的测试。
如何从命令行执行此操作?
(注意:不编译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
不存在。
测试不支持热重载;所以这不是一个选择。
在各个地方也有一些建议,测试类型(例如ATF_Game
,ATF_Editor
)对运行是否运行有一些影响;也许这是一个问题,但我已尝试过各种组合但没有成功。
-
我尝试过各种各样的事情,试图让这项工作成功,没有成功,所以现在是获得赏金的时间。
我会接受一个可靠的答案:
答案 0 :(得分:8)
是的,没有人在这里或问题跟踪器上有任何想法。
经过对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"
答案 1 :(得分:2)
您的意思是编辑器内命令行还是Windows命令行?
在编辑器中,您可以使用 Automation 命令和参数,例如自动化RunAll
在Windows命令行中,您可以使用 -ExecCmds 指定虚幻命令参数。要在项目中运行所有测试: UE4Editor.exe YOURPROJECT -Game -ExecCmds =“Automation RunAll”
答案 2 :(得分:0)
对于任何仍在疑惑的人来说,编辑器中存在一个错误,使得测试列表在从命令行启动之前被刷新(无论是在启动时还是在启动时)。
这意味着编辑器实际上编译了要运行的测试列表,然后由程序的另一部分刷新。然后编辑认为它已经完成了所有测试的运行,并且由于没有错误,表明它们都成功了。
如果有人有兴趣,我可以发布如何修复此问题,但它会引入另一个小错误。