Automated QA Package [v0.7]

Please note, Automated QA Development is On Hold. Please click here for more information.

The Unity DevOps Product Team


The Automated QA package enables users to record and playback touch or drag interactions with the UI of a Unity Project and optionally use recordings to drive Unity Tests - in the editor, on a local iOS or Android device, or on an iOS or Android device managed by Unity in the cloud (email us at AutomatedQA@unity3d.com for access to this feature).

Key Features

  • Object based recording: record once in the editor and play back on many different devices and aspect ratios
  • Recorded playbacks are stored as time stamped sequences of objects identified by name and tags
  • Composite recorded playbacks: create modular recordings to minimize duplication and automatically keep recorded playbacks up to date when a component is updated
  • Automatic recorded test generation: create Unity Test Framework Tests from recorded playbacks with the click of one button
  • Run tests from your CI pipeline: recorded tests can be run on your build machine, like any other Unity Test, or use the cloud on-device testing feature to run tests on our cloud Android device farm invoked from your build pipeline.

delicioussamedeermouse
Recorded Playback Creation → Unity Test Execution

Limitations

  • This is an experimental package with volatile features. New versions may include breaking changes.
  • Unity 2019.4 or above required
  • Recording is currently limited to UI elements implemented with Unity UI

Installation

  • With your project open in the Unity Editor, open the Package Manager (Window > Package Manager).
  • Press the plus button (+) in the top left of Package Manager and then select “Add package from git URL…”.
  • Enter com.unity.automated-testing in the text box and then press “Add”.

See our package documentation for getting started instructions and more information. Please email us at AutomatedTesting@unity3d.com with any questions!

Changelog
[Development On Hold] - 2021-12-10
[0.7.0] - 2021-10-27
Major Features and Improvements

  • Added RecordableInput class that can be used as a drop in replacement for the Input class that works with recorded playback. Currently mouse clicks, touch, keyboard keys, and joystick buttons are supported. Pass-through methods are provided for the remaining functionality for ease of use.

  • Added scriptable object CloudTestDeviceInput that lets a user specify specific devices on which to execute their tests in the cloud.

  • Added support to retrieve HTML reports for cloud device runs

  • Added new report to aggregate display of results for multi-device cloud runs, with links to each individual device’s run results in an existing HTML report.

  • Added Heap size performance sampling to reporting charts found in the existing test report.

  • Added Page Objects to test generation tool.

  • Every GameObject that code interacts with has its query string locator stored in a single Page Object class, referenced by any number of tests.

  • Page Object properties are organized in different Page Object classes based on the scene they are located in.

  • When generating tests, the tool will see if an existing Page Object property exists. It will only add a property to a class if no reference exists.

  • All menu options moved to a single “Automated QA Hub” window

  • Moving Cloud Testing behind a feature flag temporarily as we redesign the UX. Please email us at AutomatedQA@unity3d.com for early access.

Bug Fixes and Minor Changes

  • Added support for custom report data.
  • Fixed error when generating full test from a recording that starts with a number.
  • Added option to generate simpler code from the Test Generator by utilizing the Driver logic’s new query string approach to finding GameObjects.
  • Rewrote Recorded Playback editor window in new UIElement logic.
  • Redesigned look of window.
  • Added GameCrawler “Crawl” button to window, which executes a default crawl and generates a recording json file.
  • Added tracking for the object index in the hierarchy to help differentiate objects with the same name
  • Added fix to ensure automation waits for a GameObject animating from off screen to finish moving into the camera frustum before interacting with it.
  • Added enforcement of an en-US culture in CodeGenerator logic.
  • Added a context menu with the ability to generate tests in the main recorded playback window.
  • Added a script for creating and managing service accounts to use in CI workflows.
  • Fixed an issue where spaces in recording json file names were used when generating a class name in the Test Generator.
  • Fixed an issue that causes backslashes to be used in generated code for Staged Runs.
  • Added “TryPerform” to Driver class. If an action cannot be performed, the test will not fail.
  • Added drop downs for builds and jobs in cloud test window
  • Added GameElement “AutoID” - an automatically-generated GUID to uniquely identify GameElements.
  • Adds GameElement script to all interactable GameObjects and assigns a unique GUID automatically.
  • Allows for GameObject to be renamed, moved, etc. without breaking a test that references this ID using Driver.cs.
  • Added menu option to automatically add GameElements to interactable UI Elements in a scene. Menu → “Automated QA” → “Add Game Elements To Scene Objects”
  • Renamed AutomatedQAEditorSettings to AutomatedQABuildConfig and AutomatedQARuntimeSettings to AutomatedQASettings.
  • Fixed an issue generating iOS cloud testing builds when there are spaces in the build name.

Breaking Changes

  • Removed “Full Build” cloud testing support.

[0.6.1] - 2021-08-12
Major Features and Improvements

  • New GameElement and ElementQuery classes for reliably finding GameObjects, no matter where they are moved in a scene.
  • Uses Xpath & JQuery-like query string selectors for identifying GameObjects.
  • New Driver class that allows for much simpler ways to write custom code and perform actions on objects (ex: Driver.Perform.Click(“#SubmitButton”)).
  • Added GameCrawler that allows users to create an AutomatedRun that plays randomly through a game, recording warnings, errors, and notifying users when and where it gets stuck.

Bug Fixes and Minor Changes

  • Reverting change that removed the ability to generate “Simple Tests”, which is a test that points to a recording file.
  • Fixed an issue with temp directories not being properly deleted.
  • Adding FPS tracking to reports. FPS sampled over duration of test execution is displayed in a graph accessible from the html report (FPS Data button).
  • Fixed issue allowing objects off screen to be interacted with.
  • Add support for recording right and middle mouse clicks.
  • Added functionality to allow both recording and playback while editor is in play mode.
  • Both record & playback can be done repeatedly in the same session.
  • Editor does not stop playmode on completion, but both record & playback can still be started outside of playmode.
  • Added support for running cloud tests from the command line using BuildAndRunTests.
  • Fixed issue where tests may timeout during command line batch mode runs.
  • Fixed issue with the InputField text listener not being added right away.
  • Screenshot timing after each playback action completes is now configurable in settings.
  • Exposed “Quit on finish” in Automated Run Config.
  • Added ability to generate a “Full” test from Automated Runs.
  • Added settings for log level
  • Added support for TextMeshPro TMP_InputFields and TMP_Text fields
  • Can record and playback input into TMP_InputFields, and find objects in ElementQuery by TMP_InputField & TMP_Text text content.

Breaking Changes

  • Several APIs were moved from the test base class to Driver.cs. “Full” generated tests from v0.5.0 will need their PerformAction and RegisterStep method invocations updated.
  • The experimental Composite Recordings window has been removed. Instead, Automated Runs can be used to playback multiple recordings in sequence.

[0.5.0] - 2021-06-28
Major Features and Improvements

  • Support for running tests on real iOS devices in the cloud

  • New [CloudTest] attribute can be used to specify any Unity Test Framework test to run on real devices in the cloud

  • Automated QA > Test Generation… allows for step-by-step Unity Test Framework test generation (C# code).

  • Generates code for every step/action taken in a recording.

  • Allows for assertions or additional custom logic between each step.

  • Can select which recordings to generate tests for.

  • Editor Window warns user if about to overwrite custom edits in a recording’s test when re-generating test.

Breaking changes

  • Recording file in RecordedPlaybackAutomator is now an asset reference instead of path string (Note: Only relevant if you’re using the experimental Automated Runs feature)

  • Migration: Update the file path in AutomatedRuns using RecordedPlaybackAutomator

Bug Fixes and Minor Changes

  • Added dynamic wait logic so that differences in load times or animations does not result in automation failing to interact with the target object.
  • Delayed loading of the recorded playback controller to avoid issues with initializing too early.

[0.4.0] - 2021-05-25
Major Features and Improvements

  • HTML & XML reports for AutomatedQA runs.

  • XML report is designed for loading tests results into a CI process run.

  • Latest HTML reportcan be opened in editor from the “Recorded Playback” and “Composite Recordings” editor windows after playback.

  • Both currently stored in Application.persistentDataPath. CI/CD must copy report from path (Will be integrated with Cloud services & modified to take raw test data from devices so that explicit file extraction is not necessary).

  • Added settings file for editable values used in Automated Qa package, thus making various Automated QA behaviors customizable (more to be added as time goes on).

  • Added new editor window to edit the settings file (Automated QA > Settings).

  • Multiple config files with varying values can be stored in Assets/AutomatedQA/Resources, and desired settings can be requested from cloud config via file name.

Bug Fixes and Minor Changes

  • Added placeholder segment file names in Composite Recording window when selecting “Save Segment”.
  • Updated VisualFx to prevent visual clutter from a rapid series of events.
  • Updated validation of GameObject that is about to be clicked. Increased performance. Now checks that an object is off screen or under another object that would intercept the click.
  • Updated recorded tests to load an empty scene after execution.
  • Fixed ignoring depth surface warnings when taking screenshots on Mac.
  • Added new Automators: Scene Automator and Text Input Automator.
  • Fixed event timings and scene loading with composite recordings

[0.3.1] - 2021-05-04
Major Features and Improvements

  • New AutomatedRun object to link together recordings and custom C# scripts to automate gameplay.

  • Create an AutomatedRun with Create → Automated QA → Automated Run

  • New Automator class. Extend this class to create custom automators

  • Extend the AutomatorConfig class for your Automator to expose it in the AutomatedRun inspector.

Bug Fixes and Minor Changes

  • Fixed an issue where drop events had extra delay
  • Fixed an issue with the Upload Recording window requiring entitlements
  • Removed dependency on com.unity.nuget.newtonsoft-json package
  • Fixed entry scene to work with initialization scenes
  • Moved menu items to top level Automated QA menu
  • Added fix to CloudTestResults.cs that prevents ITestRunCallback from being eagerly stripped by the “ahead of time” compilation in IL2CPP builds.
  • Added logic to cleanup temporary files accumulating from previous recordings and stored in the persistent data path.
  • Removed Linq usage from package as Linq can be a heavy library for mobile game development.

[0.3.0] - 2021-04-21
Breaking changes

  • Simplified assembly definitions

  • Migration: Please update asmdefs to reference Unity.AutomatedQA

  • Renamed asset directory to AutomatedQA

  • Migration: Please delete the old AutomatedTesting folder

Bug Fixes and Minor Changes

  • Package directory restructure
  • Added SettingsManager package and AutomatedQAEditorSettings/AutomatedQARuntimeSettings to wrap package settings
  • Disabled Cloud Testing window for unsupported platforms
  • Fixed an issue with recorded tests using composite recordings
  • Fixed an issue causing two simultaneously active EventSystem components, resulting in a flood of console warnings
  • Fixed an issue where multi-clicking “Record” or “Play” buttons creates multiple RecordedPlaybackController GameObjects
10 Likes

Is the new Input System supported? I’m getting spammed with an error about Input.mousePosition.

As long as the elements you’d like to interact with are implemented with Unity UI, then yes with an additional step:

With your Unity Project open, from the menu bar navigate to Edit > Project Settings > Player > Other Settings > Configuration, then set Active Input Handling to “Both”.

1 Like

An error occurred in the “Recorded Test”.
After running “Generate Recorded Tests”, select “GeneratedTests.dll” and run it. Then the following error appeared in the console.

FileNotFoundException: Could not find file "/Users/***/Library/Application Support/DefaultCompany/UnityTestFramework/config.json"
System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) (at <fb001e01371b4adca20013e0ac763896>:0)
(snip)
System.IO.File.ReadAllText (System.String path) (at <fb001e01371b4adca20013e0ac763896>:0)
Unity.RecordedTesting.Manager.GetDeviceFarmConfig (Unity.RecordedTesting.DeviceFarmOverrides dfOverrides) (at Library/PackageCache/com.unity.automated-testing@0.2.0-preview.3/RecordedTesting/Runtime/Manager.cs:31)
Unity.RecordedTesting.TestResults.RunStarted (NUnit.Framework.Interfaces.ITest testsToRun) (at Library/PackageCache/com.unity.automated-testing@0.2.0-preview.3/RecordedTesting/Runtime/TestTools/TestResults.cs:33)
UnityEngine.TestRunner.Utils.TestRunCallbackListener+<>c__DisplayClass1_0.<RunStarted>b__0 (UnityEngine.TestRunner.ITestRunCallback callback) (at Library/PackageCache/com.unity.test-framework@1.1.24/UnityEngine.TestRunner/Utils/TestRunCallbackListener.cs:16)
UnityEngine.TestRunner.Utils.TestRunCallbackListener.InvokeAllCallbacks (System.Action`1[T] invoker) (at Library/PackageCache/com.unity.test-framework@1.1.24/UnityEngine.TestRunner/Utils/TestRunCallbackListener.cs:38)
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr) (at /Users/bokken/buildslave/unity/build/Runtime/Export/Scripting/Coroutines.cs:17)

There is no config.json in that directory, but there is config_recording.json and playback_recording.json.

environment:

  • macOS Big Sur (11.2.3)
  • Unity 2019.4.11f1
  • Automated QA 0.2.0-preview.3
  • Test Framework 1.1.24

Thanks for the stacktrace, we are investigating this. The SDK shouldn’t look for that file while running locally. Can I you please check if there are any scripting defines in “Player Settings” ?

Thanks for your response!
I found CLOUD_TEST_UTF symbol in Scripting Define Symbols. After removing this, the test will now run.

But, every test failed with the following exception.

CanPlayToEnd (3.571s)
---
SetUp : System.Reflection.ReflectionTypeLoadException : Exception of type 'System.Reflection.ReflectionTypeLoadException' was thrown.
---
--SetUp
  at (wrapper managed-to-native) System.Reflection.Assembly.GetTypes(System.Reflection.Assembly,bool)
  at System.Reflection.Assembly.GetTypes () [0x00000] in <fb001e01371b4adca20013e0ac763896>:0
  at Unity.RecordedTesting.RecordedTesting.GetAllRecordedTests () [0x00023] in /Users/****/Documents/UnityTestWorkspace/Library/PackageCache/com.unity.automated-testing@0.2.0-preview.3/RecordedTesting/Runtime/RecordedTesting.cs:55
  at Unity.RecordedTesting.RecordedTesting.GetLocalRecordingFile (System.String testName) [0x00002] in /Users/****/Documents/UnityTestWorkspace/Library/PackageCache/com.unity.automated-testing@0.2.0-preview.3/RecordedTesting/Runtime/RecordedTesting.cs:36
  at Unity.RecordedTesting.RecordedTesting.SetupRecordedTest (System.String testName) [0x00008] in /Users/****/Documents/UnityTestWorkspace/Library/PackageCache/com.unity.automated-testing@0.2.0-preview.3/RecordedTesting/Runtime/RecordedTesting.cs:115
  at Unity.RecordedTesting.TestTools.RecordedTestSuite+<Setup>d__0.MoveNext () [0x00027] in /Users/****/Documents/UnityTestWorkspace/Library/PackageCache/com.unity.automated-testing@0.2.0-preview.3/RecordedTesting/Runtime/TestTools/RecordedTestSuite.cs:23
  at UnityEngine.TestTools.BeforeAfterTestCommandBase`1+<ExecuteEnumerable>d__12[T].MoveNext () [0x00185] in /Users/****/Documents/UnityTestWorkspace/Library/PackageCache/com.unity.test-framework@1.1.24/UnityEngine.TestRunner/NUnitExtensions/Commands/BeforeAfterTestCommandBase.cs:87

Great initiative!

After I click on “Record”, I get a bunch of entries like this one on the log:

There are 2 event systems in the scene. Please ensure there is always exactly one event system in the scene
UnityEngine.EventSystems.EventSystem:Update () (at C:/Program Files/Unity/Hub/Editor/2020.3.5f1/Editor/Data/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/EventSystem.cs:398)

When I click on “Stop”, the json file only has mouse inputs logged, keyboard and gamepad are not getting logged (are those not supported yet?)

Thanks!

The “There are 2 event systems in the scene” bug was fixed in the most recent release of the package (0.3.0).

The package is not yet recording keyboard/gamepad inputs. Both the old and new input systems need to be handled seamlessly depending on the package customers are using, and keyboard/gamepad inputs will require that. So the handling of those types of inputs is important and is on the horizon.

Right now, clicks and drags are recorded within the Canvas space. However, it will not work yet with GameObjects not on the Canvas (ex: world objects using colliders to perform actions similar to clicks and drags; this functionality is also in the queue).

I found the cause.

System.Reflection.Assembly.GetTypes seems to throw an exception if the assembly Microsoft.CodeAnalysis.Scripting.

In my project, com.unity.immediate-window depended on this assembly, so I removed it and was able to run the test!

1 Like

I have two requests.

  1. Fail test if object not found in Recorded-testing option

e.g. Add boolean argument in TestPlayToEnd() or Project setting

  1. No need to register in “Scenes in Build” for scene loading

It can be realized with such an implementation. see Fix for not need registered in "Scenes in Build" for scene loading ¡ nowsprinting/UnityAutomatedQAExamples@56ca2d3 ¡ GitHub

1 Like

Hi I also have a question to this toppic. Is it possible to check if a scene was created by a recorded playback? We have our DI set in a way it initializes systems only when our game-scene is starting. Thats why tests fail since a new scene is created for the tests start.

And already the next question :smile:

Is it possible to create Tests out of Automated Runs? If so how would I go about it? If not I think it would be a very nice feature!

Can this be used with the code coverage package?

In v0.4.0:

  • I’m not want to put AutomatedQASettings.json on “Resources” folder

  • Warning mesages in the console. because unnecessary .meta files, follows:

  • RecordedTesting/Editor.meta

  • RecordedTesting/Runtime/TestTools.meta

In v0.5.0

  • Warnings in the console

  • There are inconsistent line endings in the ‘Assets/AutomatedQA/GeneratedTests/Steps/xxx_Steps.cs’ script. Some are Mac OS X (UNIX) and some are Windows.

  • Tests fail in batch mode. (same tests are successful in Unity Editor GUI)

  • Message: Timeout value of 180000ms was exceeded

  • see https://github.com/nowsprinting/UnityAutomatedQASandbox/actions/runs/987736845

  • I am very happy that the “dynamic wait logic” makes the execution more stable. But, I miss the ease of replacing the JSON file by just recording it again.

For the first point, are you able to add it to a git ignore? It needs to be in resources for use in the Cloud and binary builds. If the problem is checking it in, it can be added to git ignore, or a similar feature in other version controls.

For the final issue, you can tell the framework to NOT use dynamic waits by setting the “Use Dynamic Waits” boolean in the Settings editor window. It will then revert to the old way of running tests, and you can continue to re-record failing tests.

Thanks. I’m not talking about running tests.

My scenario as follows:

  1. Recording tests to json
  2. Automated QA | Test Generation
  3. Add asserts in test code
  4. One day, UI operation and/or transitions will be changed!
  5. Re-Recording tests to json
  6. Use the test code without changing it

Until v0.4, this was possible.
But, in v0.5, Re-Test Generation is required.

This behavior is acceptable for us programmers, but I think it is cumbersome for test engineers and level designers to use Automated QA.

Given that UI changes are frequent, such as in game tutorials, I hope have preferred to keep the advantage of being able to replace only json.

I have one request for the features of Automated QA. Please doesn’t overwrite this file, if “Assets/AutomatedQA/GeneratedTests/GeneratedTests.asmdef” already exists when user runs Test Generation. If a user creates test codes in “Assets/AutomatedQA/GeneratedTests”, they will add elements to Assembly Definition References in this .asmdef file. But because this .asmdef file is initialized when they creates a new test, they needs to reconfigure this .asmdef file.

1 Like

Thanks for this suggestion!

1 Like

I’ve been having issues trying to get either version 0.3.1 or 0.5.0 working in our project.

With v0.5.0 specifically, whenever I try to run an Automated Run using a recording added with the RecordedPlaybackAutomatedConfig, I get the following errors and stack traces:

BadImageFormatException: VAR 1 (TResult) cannot be expanded in this context with 1 instantiations
System.Reflection.MonoMethod.GetBaseMethod () (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.MonoCustomAttrs.GetBase (System.Reflection.ICustomAttributeProvider obj) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.MonoCustomAttrs.GetCustomAttributes (System.Reflection.ICustomAttributeProvider obj, System.Type attributeType, System.Boolean inherit) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Reflection.MonoMethod.GetCustomAttributes (System.Type attributeType, System.Boolean inherit) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Attribute.GetCustomAttributes (System.Reflection.MemberInfo element, System.Boolean inherit) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Attribute.GetCustomAttributes (System.Reflection.MemberInfo element) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Reflection.CustomAttributeExtensions.GetCustomAttributes (System.Reflection.MemberInfo element) (at <695d1cc93cca45069c528c15c9fdd749>:0)
Unity.RecordedTesting.RecordedTesting.GetAllRecordedTests () (at Library/PackageCache/com.unity.automated-testing@0.5.0-preview.1/Runtime/Automators/RecordedPlayback/RecordedTesting/RecordedTesting.cs:73)
Unity.RecordedTesting.RecordedTesting.IsRecordedTest (System.String testName) (at Library/PackageCache/com.unity.automated-testing@0.5.0-preview.1/Runtime/Automators/RecordedPlayback/RecordedTesting/RecordedTesting.cs:50)
ReportingManager.InitializeDataForNewTest () (at Library/PackageCache/com.unity.automated-testing@0.5.0-preview.1/Runtime/Core/Reporting/ReportingManager.cs:242)
ReportingManager.RecordLog (System.String message, System.String stackTrace, UnityEngine.LogType type) (at Library/PackageCache/com.unity.automated-testing@0.5.0-preview.1/Runtime/Core/Reporting/ReportingManager.cs:352)
UnityEngine.Application.CallLogCallback (System.String logString, System.String stackTrace, UnityEngine.LogType type, System.Boolean invokedOnMainThread) (at <c7864a0eaeb24b2a999fb177623d54b4>:0)
UnityException: List provided to AutomatedQATools.Last() was empty. Cannot invoke Last() on an empty list. Check for list being empty before invoking Last().
Unity.AutomatedQA.AutomatedQaTools.Last[T] (System.Collections.Generic.List`1[T] list) (at Library/PackageCache/com.unity.automated-testing@0.5.0-preview.1/Runtime/Core/AutomatedQaTools.cs:146)
ReportingManager.FinalizeReport () (at Library/PackageCache/com.unity.automated-testing@0.5.0-preview.1/Runtime/Core/Reporting/ReportingManager.cs:174)
ReportingMonitor.OnApplicationQuit () (at Library/PackageCache/com.unity.automated-testing@0.5.0-preview.1/Runtime/Core/Reporting/ReportingMonitor.cs:53)

In v3.0.1 I also get a similar BadImageFormatException whenever I run a generated test from a recording in the Test Runner

Windows 10
Unity 2020.3.7f1
Test Framework 1.1.24
Automated QA 0.5.0-preview.1
Automated QA 0.3.1-preview.2

I am having some weird and unorthodox error where if I record step by step using the Record function, it works. However generating the script out to full test breaks.

I think the culprit is that we have MaterialUI, which still uses Unity UI under the hood of the library. However, it seems like it cannot find the gameobject the QA is trying to find (Since it’s moving). The JSON file works perfectly, but for whatever reason the full scripted tests (even with changes in deltaTime) it still errors out complaining that it cannot find the button it was target to click or release from.

Can someone help me on what I can do from here? I’m kinda stuck with this Dialog issue. Here’s the full test error issue:

AQA: Click position recorded relative to spot within the target GameObject "Button - Affirmative" is positioned outside of the camera frustum (is not visible to the camera). Since this is a GameObject in the UI layer, this may mean that the object has not scaled or positioned properly in the current aspect ratio (865w X 487h) and current resolution (1920 X 1080) compared to the recorded aspect ratio (865h X 487w) and recorded resolution (1920 X 1080).
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
Unity.AutomatedQA.AQALogHandler:LogFormat(LogType, Object, String, Object[]) (at Library/PackageCache/com.unity.automated-testing@0.6.1-preview.2/Runtime/Core/AQALogger.cs:10)
UnityEngine.Logger:LogError(String, Object)
Unity.AutomatedQA.AQALogger:LogError(Object) (at Library/PackageCache/com.unity.automated-testing@0.6.1-preview.2/Runtime/Core/AQALogger.cs:73)
UnityEngine.EventSystems.RecordingInputModule:UpdatePlay(Int32)
Unity.AutomatedQA.<Action>d__24:MoveNext() (at Library/PackageCache/com.unity.automated-testing@0.6.1-preview.2/Runtime/Core/AdvancedQuerying/Driver.cs:292)
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)

Win 10 pro
Automated QA preview.2 - 0.6.1
Test Framework - 1.1.29
Unity 2019.4.9f1 - Android configuration