Command Line Test Runner option editorTestsCategories not working.
Unity 5.6.4f1 Pro
Command Line Test Runner option editorTestsCategories not working.
My Input: (Window)
Unity.exe -runEditorTests -projectPath D:\TestProject -editorTestsResultFile D:\TestProject\Reoprt.xml -editorTestsCategories LongRunning -testPlatform editmode
My Input: (Mac )
Unity -runEditorTests -projectPath /Users/user/Documents/TestProject -editorTestsResultFile /Users/user/Documents/TestProject/Reoprt.xml -editorTestsExcludeCategories LongRunning -testPlatform editmode
PlayerTest.cs
using System;
using NUnit.Framework;
public class PlayerTest
{
[Test]
[Category("LongRunning")]
public void TestHealth(){
Player player = new Player ();
player.Health = 1000.0f;
player.Damage (200);
Assert.AreEqual (800, player.Health);
player.Recover (150);
Assert.AreEqual (950, player.Health);
}
}
Monster.cs
using UnityEngine;
using UnityEditor;
using UnityEngine.TestTools;
using NUnit.Framework;
using System.Collections;
public class Monster {
[Test]
public void Test001() {
Assert.IsNull (null);
}
[UnityTest]
public IEnumerator Test002() {
Assert.IsNull (null);
yield return null;
}
[Test]
[Category("Log")]
public void Add(){
Assert.IsNull (null);
}
[Test]
[Category("FunTest")]
public void Clear(){
Assert.IsNull (null);
}
}
Reoprt.xml
<?xml version="1.0" encoding="utf-8"?>
<test-suite type="TestSuite" id="1018" name="fff" fullname="fff" runstate="Runnable" testcasecount="5" result="Passed" start-time="2017-11-28 03:19:39Z" end-time="2017-11-28 03:19:39Z" duration="0.161594" total="5" passed="5" failed="0" inconclusive="0" skipped="0" asserts="6">
<test-suite type="Assembly" id="1026" name="Assembly-CSharp-Editor.dll" fullname="D:/CompanyProject/TestCI/fff/Library/ScriptAssemblies/Assembly-CSharp-Editor.dll" runstate="Runnable" testcasecount="5" result="Passed" start-time="2017-11-28 03:19:39Z" end-time="2017-11-28 03:19:39Z" duration="0.118299" total="5" passed="5" failed="0" inconclusive="0" skipped="0" asserts="6">
<properties>
<property name="_PID" value="8484" />
<property name="_APPDOMAIN" value="Unity Child Domain" />
</properties>
<test-suite type="TestFixture" id="1019" name="Monster" fullname="Monster" classname="Monster" runstate="Runnable" testcasecount="4" result="Passed" start-time="2017-11-28 03:19:39Z" end-time="2017-11-28 03:19:39Z" duration="0.076698" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="4">
<test-case id="1022" name="Add" fullname="Monster.Add" methodname="Add" classname="Monster" runstate="Runnable" seed="126888637" result="Passed" start-time="2017-11-28 03:19:39Z" end-time="2017-11-28 03:19:39Z" duration="0.005874" asserts="1">
<properties>
<property name="Category" value="Log" />
</properties>
</test-case>
<test-case id="1023" name="Clear" fullname="Monster.Clear" methodname="Clear" classname="Monster" runstate="Runnable" seed="1009024871" result="Passed" start-time="2017-11-28 03:19:39Z" end-time="2017-11-28 03:19:39Z" duration="0.005717" asserts="1">
<properties>
<property name="Category" value="FunTest" />
</properties>
</test-case>
<test-case id="1020" name="Test001" fullname="Monster.Test001" methodname="Test001" classname="Monster" runstate="Runnable" seed="1271642661" result="Passed" start-time="2017-11-28 03:19:39Z" end-time="2017-11-28 03:19:39Z" duration="0.005910" asserts="1" />
<test-case id="1021" name="Test002" fullname="Monster.Test002" methodname="Test002" classname="Monster" runstate="Runnable" seed="1504737957" result="Passed" start-time="2017-11-28 03:19:39Z" end-time="2017-11-28 03:19:39Z" duration="0.009725" asserts="1">
<properties>
<property name="_JOINTYPE" value="UnityCombinatorial" />
</properties>
</test-case>
</test-suite>
<test-suite type="TestFixture" id="1024" name="PlayerTest" fullname="PlayerTest" classname="PlayerTest" runstate="Runnable" testcasecount="1" result="Passed" start-time="2017-11-28 03:19:39Z" end-time="2017-11-28 03:19:39Z" duration="0.017838" total="1" passed="1" failed="0" inconclusive="0" skipped="0" asserts="2">
<test-case id="1025" name="TestHealth" fullname="PlayerTest.TestHealth" methodname="TestHealth" classname="PlayerTest" runstate="Runnable" seed="1655231227" result="Passed" start-time="2017-11-28 03:19:39Z" end-time="2017-11-28 03:19:39Z" duration="0.013572" asserts="2">
<properties>
<property name="Category" value="LongRunning" />
</properties>
</test-case>
</test-suite>
</test-suite>
</test-suite>
Should only one record by Category LongRunning.
I need help.
Answer by diegoalejogm · Dec 10, 2017 at 02:51 AM
Hi. I have the same problem in Mac OS X 13.
Any ideas on how to solve this bug? Any response yet from Unity?,I am going through the same scenario!
Answer by MohanadHamed · Sep 13, 2018 at 07:36 AM
Categories per class worked with me but method categories did not work.
Try adding it like this:
[TestFixture]
[Category("LongRunning")]
public class PlayerTest
{
...
}
And add quotations to category names in command line:
Unity.exe -runEditorTests -projectPath D:\TestProject -editorTestsResultFile D:\TestProject\Reoprt.xml -editorTestsCategories "LongRunning" -testPlatform editmode