2016-03-31 10 views
2

Solidworks CADシステム用のプラグインを作成しています。アドインの作成には、DLLのコンパイル、登録、およびsolidworksの起動が含まれます。 dllのコードは、solidworksの起動直後に実行するように設定できます。XUnitをビジュアルスタジオで使用してリモートプロセスでテストコードをユニット化する方法

私がしたいのは、一連の単体テストやビジュアルスタジオからの単体テストを実行し、その結果を標準的な方法でビジュアルスタジオに報告するための特別なDLLです。

標準のビジュアルスタジオテストまたは再ハザードテストシステムのいずれかを使用してください。

これを達成するためにユニットテストシステムに拡張機能を書き込むことは可能ですか?もしそうなら、これがいかに難しいか。おそらく、テストを必要とする他のプラグインタイプの環境でもすでに同様のことをしている拡張機能があります。

+0

solidworksアドインのテストは非常に苦しいことがあります... –

+0

solidworksアドインコードをテストするとき、marshal.GetActiveObject( "SolidWorks.Application")を使用してsldworksオブジェクトを取得し、それは私のコードです。私はこれが一体化されているので、dllをコンパイルしてregasmしてsldwrksが起動するのを待たずに基本的にsolidworksを嘲笑していると思います。 –

+0

私はこれに尋ねた。我々はプロセスユニットのテストで真を可能にするためにxunitへの拡張を書いてほぼ完成しました。これには、WCFサービスを含むsolidworksアドインが含まれます。 WCFサービスは、私たちが書いたxunit拡張の一部です。結局、プロセスは完全に透明になり、単体テストもデバッグ可能です。うまくいけば、私たちは月曜日にそれを終了し、我々はそれをリリースします。状態は調整された。 – bradgonesurfing

答えて

3

私たちは、この問題

https://github.com/Weingartner/XUnitRemote

を解決xUnitのためのプラグインを書いて、上記を使用して、特定のソリューションは、ユニットテストのSolidWorks

https://github.com/Weingartner/SolidworksAddinFramework

例のカスタムとサンプルテスト用ですの事実

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); 
     } 
    } 
} 

あなたのカスタムプロセスでは、いくつかのフックを書く必要がありますので、これを行う方法の詳細については、プロジェクトを参照してください。

+0

私はまだsolidworksで動作させるのに問題があります。 –

+0

ソリッドワークスは、アプリのドメインと奇妙な悪いものが発生するとファンキーなものを行います。原則は健全ですが、依然としていくつかの作業が必要です。あなたは手作業でテストをしていますか? – bradgonesurfing

+1

どのようなプラグインを書いているのですか?あなたは私のことを歓迎しています:https://github.com/jliliamen/power-sm –

関連する問題