J'ai créé la structure suivante :
Assets
Scenes
Scripts
MyExample.cs
Tests
MyExampleTest.cs
Tests.asmdef
Maintenant, lorsque je clique sur Run All, dans la fenêtre Test Runner, dans Unity, j'ai l'erreur suivante :
The type or namespace name `MyExample' could not be found. Are you missing an assembly reference?
Dans Visual Studio, j'ai deux projets :
-
Assembly-CSharp (contenant src)
-
Tests (contenant des tests)
J'ai ajouté Assembly-CSharp comme référence dans le second projet. Visual Studio est capable de construire la solution sans aucune erreur.
Quelqu'un sait-il comment configurer correctement une régression UnitTest pour un projet Unity ?
C'est Tests.asmdef
{
"name": "Tests",
"optionalUnityReferences": [
"TestAssemblies"
]
}
MonExempleTest.cs
using UnityEngine;
using UnityEngine.TestTools;
using NUnit.Framework;
using System.Collections;
using abc;
public class MyExampleTest{
[Test]
public void NewTestScriptSimplePasses() {
// Use the Assert class to test conditions.
}
[UnityTest]
public IEnumerator NewTestScriptWithEnumeratorPasses() {
abc.Example m;
Assert.That(false);
yield return null;
}
}
MonExemple.cs
namespace abc
{
public class Example
{
}
}
0 votes
Quelle version d'Unity utilisez-vous ? Juste au cas où, votre fichier Tests.asmdef fait-il référence à des assemblages de test qui sont uniquement destinés à l'éditeur ? Sinon, notez que les tests unitaires de Unity doivent se trouver dans un dossier de l'éditeur.
0 votes
@sonny Je mets à jour la question avec le fichier Tests.asmdef. Version Unity 2018.1.0f2
0 votes
Il semble que l'ajout de la référence dans Visual Studio soit inefficace dans Unity. Lorsque je ferme et rouvre, la référence n'est plus définie.