2017-11-30 16 views
1

Ich bin nur ein Anfänger und versuche immer noch, etwas über TFS und seinen kontinuierlichen Integrations-Workflow zu lernen. Nachdem dies gesagt wurde, könnte dies auch eine dumme Frage sein, die ich stellen könnte, da ich in einem einfachen Detail fehlen könnte, obwohl jede Hilfe oder jeder Rat sehr geschätzt wird.Running (x) Unit Tests auf TFS Build Pipeline

Also, ich habe eine ziemlich einfache Einheit Testbeispiel geschrieben mit .NET Core 2.0, die ich gerne als eine Testaufgabe auf unserem TFS Server CI Build-Pipeline ausführen würde. Es sieht so ziemlich etwas wie folgt aus:

using Microsoft.VisualStudio.TestTools.UnitTesting; 

namespace MyUnitTest 
{ 

    [TestClass] 
    public class MyUnitTest 
    { 

     [TestMethod] 
     public void PassingTest() 
     { 
      Assert.AreEqual(4, Add(2, 2)); 
     } 

     [TestMethod] 
     public void FailingTest() 
     { 
      Assert.AreEqual(5, Add(2, 2)); 
     } 

     int Add(int x, int y) 
     { 
     return x + y; 
     } 

    } 

} 

Wenn ich versuche, diese Tests in Visual Studio zu laufen, es baut perfekt und die Tests erfolgreich sein und nicht entsprechend. Also übertrage ich mein Projekt und schiebe es in unser TFS-Git-Repository. Nun möchte ich diese Tests ebenfalls in unsere Build-Pipeline integrieren.

Die in unseren CI-Builds verwendete Builddefinition sieht wie this aus. Ich habe Visual Studio Test - testAssemblies Task in der Build-Pipeline hinzugefügt und das Suchmuster konfiguriert, um die Assembly mit dem Namen MyUnitTest.dll und so zu finden. Wenn ich den Build in die Warteschlange bringe, erhalte ich folgende Warnung in VSTests log.

Warning: No test is available in C:\BuildAgent\_work\9\s\MyUnitTest\MyUnitTest\bin\release\netcoreapp1.1\MyUnitTest.dll. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again.

So scheint es mir, dass VSTest irgendwie nicht Tests finden in der Zielbaugruppe ausgeführt werden. Ich bin mir ziemlich sicher, dass ich etwas falsch konfiguriert habe oder vergessen habe, einen bestimmten Parameter entsprechend einzustellen. Ich bin mehr als dankbar für jeden Vorschlag, der möglicherweise aufzeigt, was ich falsch machen könnte.

Auf der Suche nach Lösungen online, bin ich auf diese question gestoßen, die ein ähnliches Problem zu haben scheint.

+0

Haben Sie hinzugefügt Das xUnit Test Runner NuGet Paket zu Ihrem Projekt? –

+0

Ja, ich habe den xUnit Test Runner hinzugefügt. –

+0

@EmreAKI [this] (https://stackoverflow.com/questions/47546562/xunit-tests-do-not-appear-on-tfs) Frage hat ein ähnliches Problem, vielleicht hilft ihre Antwort auch Ihnen – Szeki

Antwort

1

Stellen Sie zuerst sicher, dass Ihre Build-Agent-Umgebung dieselbe ist wie Ihre lokale Entwicklungsmaschine. Wie Visual Studio-Version, MsTestAdapter, Xunit-Runner-Version und so weiter.

Sie können dies bestätigen, indem Sie den Test manuell auf dem Build-Agent-Computer und nicht über TFS ausführen.

Dann nutzen Sie die folgenden Aufgaben in Ihrem Build-Pipeline:

  1. eine dotnet restore Aufgabe hinzufügen.
  2. Dann eine dotnet build Aufgabe.
  3. hinzufügen dotnet test Aufgabe mit den Argumenten --no-build --logger "trx;LogFileName=tests-log.trx

enter image description here

Weitere Informationen erhalten Sie dieses Tutorial Blog verweisen eine Publish test results Aufgabe mit den folgenden Einstellungen hinzufügen: Running dotnet core xUnit tests on Visual Studio Team Services (VSTS)

+0

Danke! Dies hilft immens. –