I am working on test framework for UI testing of Unity3d application that’s called Puppetry. You can find source code here and its documentation on Wiki.
Puppetry can find a GameObject by its name and position in the hierarchy, and then emulate interaction with it (Click, SendKeys, DragAndDrop, Swipe, etc).To make validation and asserts you can check if GameObject is exist, is active in the hierarchy, plus get its component to check its value.
You can run UI testing against game launched in Editor or combine it with Appium, for example, to test the application on mobile devices. To use it on a device, Puppetry can provide screen coordinates of a GameObject, and you can click on them, or just use Puppetry’s click.
The framework is easy to combine with NUnit, XUnit or MSTest.