Revit を実行せずに Revit DB モデルと対話する独自の Revit API コードの単体テストを作成することは可能ですか?
もしそうなら、これはどのように達成されるでしょうか。
私は言及されているスレッドのいくつかに関わってきました。私は、Revit用の非常によく開発された単体テストフレームワークを備えたプロジェクトにも取り組んできました(残念ながら、共有することはできません)。
しかし、このアプローチについて私が言えることは次のとおりです。テストを実行するための独自の基本的なフレームワークを構築する必要があります。Revit内でアドインとして実行されます(Revitを起動し、アドインを選択してから、実行するテストハーネスアセンブリを選択する必要があります)。その後は、xUnit、MSTestなどによく似ています。各テストを特定のテストモデルにポイントする追加のテスト属性がいくつかあったと思います。
全体として面倒なのは、Revitを起動する必要があることです。これは、ご存知のとおり、時間がかかる可能性があります(また、従来の開発で単体テストを使用するよりもプロセスの利便性が大幅に低下します)。オートデスクがさらにオープンにすることを決定するまで、それはあなたが立ち往生していることです(「RevitPython Shell」アプローチを採用しない限り...私は従来の.NET言語のみを参照していたと思います)。
幸運を...
Dynamo プロジェクトには、Revit API で NUnit テストを実行できるDynamo Revit テスト フレームワークが含まれています。ジャーナル ファイルの生成を処理して、個々の Revit セッションを作成し、個別にテストします (テストは、1 つの revit セッションでフィクスチャとして一緒に実行することもできます)。現在は Dynamo 向けですが、Dynamo 以外の用途にも簡単に適応できます。また、 Dynamo プロジェクトの一部としてオープン ソースです。
また、ソースを改善する場合は、お気軽にプル リクエストを送信してください。私たちは常に良い貢献を探しています。
Revit 単体テストについて、http://forums.augi.com/showthread.php?98536-Unit-testing-with-Revit-APIと http://darenatwork.blogspotで説明されている以上の詳細を見つけられるかどうかはわかりません 。 com/2010/11/unit-testing-revit-plugins_10.html
または、Revit API で単体テストを使用する方法を独自に見つけているかもしれません。
Jeremy Tammik がこのトピックに関するブログ記事を書きました
http://thebuildingcoder.typepad.com/blog/2013/07/revit-add-in-unit-testing.html
API コードをインターフェイスに抽象化し、それを一連のモック オブジェクトに実装して、テストに使用できます。