Giter Club home page Giter Club logo

trilleon's Introduction

Trilleon

A complete integration automation framework (and unit test framework) for Unity

The Trilleon test automation and unit test framework is a comprehensive library of code built for C# in the Unity engine. Modeled after Selenium, it is the first comprehensive Unity toolset that allows you to build a complete automation (integration) test framework inside of Unity. Additionally, it allows you to write non-standard unit tests that can test code that cannot be tested at compile time (such as IEnumerators or context-specific logic).

For an extensive explanation of the framework, along with tutorials for setup, deep dives into the functionality available, and much more, visit the Trilleon Wiki, now located in this github repo's Wiki section.

trilleon's People

Contributors

disruptorbeam avatar disruptorcham avatar hianhianhian avatar jcpelletierdb avatar tsibiski avatar tsibiskigsn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

trilleon's Issues

Failed to load window layout when Nexus window was previously open

Brief Description
When the Nexus editor window was open in the previous Unity session and Unity is closed and reopened, I am experiencing this error:
image
Seems to replicate no matter which project I'm using. From some investigation, I am seeing that Nexus.OnEnable() gets called twice when Unity is reopened, although I am not sure what the significance of this is.

Replication Steps

  1. Download Trilleon v1.1.6 from here
  2. Create a new Unity project (2D mobile) and copy the Automation folder into /Assets/
  3. Launch the project
  4. Open Trilleon > Nexus
  5. Close Unity and reopen it
  6. Encounter the following error
  7. Choose Load Default Layout
  8. Unity is able to load but will have the error shown below. The Nexus window is not opened and has to be manually reopened.

Unity Version
2020.3.41f1

Device Platform
Windows 10

Build Platform
Happens on both PC/Mac/Linux Standalone and Android.

Stacktrace

Failed to load window layout: UnityEditor.LayoutException: Window layout at Library/CurrentLayout-default.dwlt could not be loaded.
  at UnityEditor.WindowLayout.LoadWindowLayout (System.String path, System.Boolean newProjectLayoutWasCreated, System.Boolean setLastLoadedLayoutName, System.Boolean keepMainWindow) [0x00114] in <ce529ddd5fb1424f905ed386885ff5fe>:0 
UnityEditor.WindowLayout:LoadDefaultWindowPreferences ()

Failed to destroy editor windows: #20
ConsoleMessage  TrilleonAutomation.ConsoleMessage [-1216]
RunClassesAlert  TrilleonAutomation.RunClassesAlert [-1214]
RunTestsAlert  TrilleonAutomation.RunTestsAlert [-1212]
SimpleAlert  TrilleonAutomation.SimpleAlert [-1210]
ConsoleMessage  TrilleonAutomation.ConsoleMessage [16116]
RunClassesAlert  TrilleonAutomation.RunClassesAlert [16118]
RunTestsAlert  TrilleonAutomation.RunTestsAlert [16120]
SimpleAlert  TrilleonAutomation.SimpleAlert [16122]
Nexus  Nexus [16124]
ConsoleMessage  TrilleonAutomation.ConsoleMessage [16126]
RunClassesAlert  TrilleonAutomation.RunClassesAlert [16128]
RunTestsAlert  TrilleonAutomation.RunTestsAlert [16130]
SimpleAlert  TrilleonAutomation.SimpleAlert [16132]
GameView  Game [16134]
TestRunnerWindow  Test Runner [16136]
ConsoleWindow  Console [16138]
InspectorWindow  Inspector [16140]
ProjectBrowser  Project [16142]
SceneView  Scene [16144]
SceneHierarchyWindow  Hierarchy [16146]

UnityEditor.WindowLayout:LoadDefaultWindowPreferences ()

Port server bash scripts developed in MacOS into shell scripts that execute on Windows

The Jenkins/CI server scripts to launch Trilleon were developed on MacOS. I need to copy the shell logic over, and modify all commands to use the Windows equivalent commands.

This is not something that I want all consumers of the framework to have to customize individually as part of the Trilleon setup process.

This is one of my highest priorities for the next release. I have not used the shell in Windows, so this won't be as fast a process as it otherwise might be. I welcome any users who submit their own customized versions in the mean time to assist with this process.

Refactor and re-enable code stub generation tool under Generator > Assistant

A lot of changes have been made since the code stub generation tool was implemented, including the Record and Playback functionality. Particularly because of the latter, shared logic updates have rendered the code stub generator wonky.

It needs:

  1. Refactoring
  2. Reorganization
  3. Add ability to test the stub immediately to see how it works

Add a performance warning threshold that can be passed in as part of a test run's config

Add a threshold value that can be provided as part of the initial test launch parameters. This value can be set to any MB value of memory usage that Trilleon should consider and report as abnormal. If memory usage exceeds this value at any point, provide a warning banner on the main report page that "shouts" out the anomaly, in case a consumer of a report does not check all performance charts and notice this irregularity themselves.

Parameterized tests using a custom attribute

Currently, there isn't an easy way to run a matrix of tests with different parameters, similar to how UnityTestFramework does it (https://docs.unity3d.com/Packages/[email protected]/manual/reference-tests-parameterized.html).

The use case would be for situations for e.g. Opening an inventory UI with different sorting/filtering options, etc.

Would this be a possible feature to implement?

Just started integrating Trilleon into a project I'm working on and I'm really liking it, thanks for this framework.

EntryPointNotFoundException: Automation Ready

I am a noobie in Unity UI testing,I have downloaded your test scene and exported into unity when i hit play i am getting this exception...
I noticed that this occur only when i changed build platform to webgl.
EntryPointNotFoundException: AutomationReady
TrilleonAutomation.AutomationMaster.Initialize () (at Assets/Automation/Engine/AutomationMaster.cs:418)
GameController.Start () (at Assets/GameController.cs:43)

Simple test is passing when it should fail..

Am I doing something stupidly wrong here? Obviously the second assert should fail but the test is passing.

        [Automation("Saves")]
        public IEnumerator MinimalRepo()
        {
            var has = false;
            Q.assert.IsTrue(!has, "Should be false");
            Q.assert.IsTrue(has, "Should be true");
            yield return null;
        }

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.