2016-03-31 6 views
2

Wir schreiben Plugins für das Solidworks CAD-System. Das Schreiben eines Add-Ins beinhaltet das Kompilieren einer DLL, das Registrieren und das Starten von Solidworks. Der Code in der DLL kann so konfiguriert werden, dass er ausgeführt wird, sobald Solidworks gestartet wird.So verwenden Sie XUnit mit Visual Studio, um den Testcode in einem Remote-Prozess zu testen

Ich würde gerne eine spezielle DLL erstellen, so dass sie eine Reihe von Komponententests oder einen einzelnen Komponententest aus dem Visual Studio ausführt und die Ergebnisse wie üblich an das Visual Studio zurückmeldet.

Wir freuen uns, entweder den Standard-Visual-Studio-Test oder das Nachschärfetestsystem zu verwenden.

Ist es möglich, eine Erweiterung des Einheitentestsystems zu schreiben, um dies zu erreichen. Wenn ja, wie schwer ist das zu erreichen? Vielleicht gibt es Erweiterungen, die für andere Plug-in-Umgebungen, die getestet werden müssen, bereits etwas ähnliches tun.

+0

testen Solidworks Add-Ins kann sehr schmerzhaft sein ... –

+0

Wenn ich Solidworks Add-Ins-Code testen, finde ich es sehr viel einfacher zu marschhals.GetActiveObject ("SolidWorks.Application"), um SLDworks-Objekt zu erhalten und dann einfach durchlaufen es ist mein Code. Ich denke, dass dies in einer Einheit kombiniert werden kann, so dass Sie im Grunde Solidworks aufarbeiten, ohne dass Sie die DLL kompilieren und regasmieren müssen und darauf warten müssen, dass sldwrks startet. –

+0

Ich habe vergessen, dass ich das gefragt habe. Wir haben fast eine Erweiterung für xunit geschrieben, um das Testen von echten Prozesseinheiten zu ermöglichen. Es enthält ein Solidworks-Add-In, das einen WCF-Dienst enthält. Der WCF-Dienst ist Teil einer xunit-Erweiterung, die wir geschrieben haben. Am Ende ist der Prozess komplett transparent und die Unit-Tests sind sogar debuggbar. Hoffentlich werden wir es am Montag fertig bekommen und wir werden es veröffentlichen. Staat abgestimmt. – bradgonesurfing

Antwort

3

Wir schrieben ein Plugin für XUnit, die dieses Problem Testsolidworks

https://github.com/Weingartner/SolidworksAddinFramework

Ein Beispiel Test mit Beispiel benutzerdefinierte

https://github.com/Weingartner/XUnitRemote

und eine spezifische Lösung unter Verwendung der oben ist für Einheit löst Fakten

namespace XUnitRemote.Test 
{ 
    public class Tests 
    { 
     private readonly ITestOutputHelper _Output; 

     public Tests(ITestOutputHelper output) 
     { 
      _Output = output; 
     } 

     [SampleProcessFact] 
     public void OutOfProcess() 
     { 
      _Output.WriteLine("Process name: " + Process.GetCurrentProcess().ProcessName); 
      Assert.Equal(5, 3); 
     } 

     [Fact] 
     public void InProcess() 
     { 
      _Output.WriteLine("Process name: " + Process.GetCurrentProcess().ProcessName); 
      Assert.Equal(5, 3); 
     } 
    } 
} 

Für Ihren benutzerdefinierten Prozess müssen Sie ein paar Haken schreiben, also schauen Sie im Projekt nach, wie Sie das machen können.

+0

krank geben Sie einen Blick dank –

+0

Wir haben immer noch Probleme, es mit Solidworks zu arbeiten. Solidworks macht funky Sachen mit App-Domains und seltsame schlechte Sachen passieren. Das Prinzip ist solide, erfordert aber noch etwas Arbeit. – bradgonesurfing

+1

machst du inzwischen manuelle Tests? Welche Art von Plugins schreibst du? Sie können gerne meine überprüfen: https://github.com/jliliamen/power-sm –

Verwandte Themen