您如何从命令行 运行 进行测试?
How do you run tests from the command line?
要在编辑器中执行此操作,您可以打开自动化选项卡,连接到会话并选择要 运行 的测试。
如何从命令行执行此操作?
(注意。不编译 UnrealEngine/Engine/Build/BatchFiles/* 全面涵盖构建应用程序和编译应用程序。具体来说,假设您有 100% 乐于编译的代码,您如何启动测试套件)
--
这里有更多信息,来自最近对 4.10 的测试:
运行 来自编辑的测试:
UE4Editor Project.uproject -ExecCmds="Automation RunTests MyTest"
注意缺少 -Game
标志;这将启动编辑器并运行在编辑器控制台中成功测试。
运行游戏引擎和使用'popup log window':
UE4Editor Project.uproject -Game -ExecCmds="Automation RunTests MyTest" -log
本运行游戏处于'play'模式,弹出编辑器window;但是,日志停在:
LogAssetRegistry: FAssetRegistry took 0.0004 seconds to start up
...并且游戏永远不会关闭或执行测试。
运行 游戏引擎并记录到文件:
UE4Editor Project.uproject -Game -ExecCmds="Automation RunTests MyTest" -log=Log.txt
这个 运行 游戏处于 'play' 模式,然后停止并且不再存在。
它似乎没有 运行 任何测试或记录到任何文件。
退出运行ning游戏后文件夹Saved/Logs
不存在
运行 在编辑器中,测试类型等...
测试不支持热重载;所以这不是一个选择。
在不同的地方也有一些建议,测试类型(例如 ATF_Game
、ATF_Editor
)对 运行 是否或可以是 [=73 有一些影响=];也许这是一个问题,但我尝试了各种组合都没有成功。
--
我已经尝试了各种组合来尝试使它正常工作,但没有成功,所以是时候赏金了。
我会接受可靠的答案:
- 从命令行执行特定测试
- 将该测试的输出记录到文件
您是指编辑器内命令行还是 Windows 命令行?
在编辑器中,您可以使用带参数的 Automation 命令,例如自动化 RunAll
在Windows命令行中,您可以使用-ExecCmds指定虚幻命令参数。要 运行 项目中的所有测试:UE4Editor.exe YOURPROJECT -Game -ExecCmds="Automation RunAll"
是的,这里或问题跟踪器上没有人知道。
在对 UE4 源代码进行了一些认真的挖掘之后,这是实际的交易,我把它留给下一个无法解决这个问题的受苦者:
从命令行运行测试,and记录输出and测试后退出运行 使用:
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"
对于任何仍然想知道的人,编辑器中存在一个错误,因此当它们从命令行启动时(无论是在启动时还是之后),测试列表在 运行 之前被刷新).
这意味着编辑器实际上将测试列表编译为 运行,然后由程序的另一部分刷新。然后编辑认为它已经完成了所有的测试 运行ning 并且由于没有错误,表明它们都成功了。
如果有人感兴趣,我可以post如何解决这个问题,但它引入了另一个小错误。
要在编辑器中执行此操作,您可以打开自动化选项卡,连接到会话并选择要 运行 的测试。
如何从命令行执行此操作?
(注意。不编译 UnrealEngine/Engine/Build/BatchFiles/* 全面涵盖构建应用程序和编译应用程序。具体来说,假设您有 100% 乐于编译的代码,您如何启动测试套件)
--
这里有更多信息,来自最近对 4.10 的测试:
运行 来自编辑的测试:
UE4Editor Project.uproject -ExecCmds="Automation RunTests MyTest"
注意缺少 -Game
标志;这将启动编辑器并运行在编辑器控制台中成功测试。
运行游戏引擎和使用'popup log window':
UE4Editor Project.uproject -Game -ExecCmds="Automation RunTests MyTest" -log
本运行游戏处于'play'模式,弹出编辑器window;但是,日志停在:
LogAssetRegistry: FAssetRegistry took 0.0004 seconds to start up
...并且游戏永远不会关闭或执行测试。
运行 游戏引擎并记录到文件:
UE4Editor Project.uproject -Game -ExecCmds="Automation RunTests MyTest" -log=Log.txt
这个 运行 游戏处于 'play' 模式,然后停止并且不再存在。
它似乎没有 运行 任何测试或记录到任何文件。
退出运行ning游戏后文件夹Saved/Logs
不存在
运行 在编辑器中,测试类型等...
测试不支持热重载;所以这不是一个选择。
在不同的地方也有一些建议,测试类型(例如 ATF_Game
、ATF_Editor
)对 运行 是否或可以是 [=73 有一些影响=];也许这是一个问题,但我尝试了各种组合都没有成功。
--
我已经尝试了各种组合来尝试使它正常工作,但没有成功,所以是时候赏金了。
我会接受可靠的答案:
- 从命令行执行特定测试
- 将该测试的输出记录到文件
您是指编辑器内命令行还是 Windows 命令行?
在编辑器中,您可以使用带参数的 Automation 命令,例如自动化 RunAll
在Windows命令行中,您可以使用-ExecCmds指定虚幻命令参数。要 运行 项目中的所有测试:UE4Editor.exe YOURPROJECT -Game -ExecCmds="Automation RunAll"
是的,这里或问题跟踪器上没有人知道。
在对 UE4 源代码进行了一些认真的挖掘之后,这是实际的交易,我把它留给下一个无法解决这个问题的受苦者:
从命令行运行测试,and记录输出and测试后退出运行 使用:
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"
对于任何仍然想知道的人,编辑器中存在一个错误,因此当它们从命令行启动时(无论是在启动时还是之后),测试列表在 运行 之前被刷新).
这意味着编辑器实际上将测试列表编译为 运行,然后由程序的另一部分刷新。然后编辑认为它已经完成了所有的测试 运行ning 并且由于没有错误,表明它们都成功了。
如果有人感兴趣,我可以post如何解决这个问题,但它引入了另一个小错误。