Closed kazurayam closed 3 months ago
v0.1.10 で対応した。
v0.1.10 の https://github.com/kazurayam/VBAProcedureUsageAnalyzer/blob/0.1.10/lib/src/main/java/com/kazurayam/vba/FindUsageApp.java が3つのテストを実行した。
FindUsageAppにOptions.KAZURAYAMを指定した場合。エッセンシャルなpuファイルとクラス図が生成された。
test_writeDiagram_Options_KAZURAYAM.pu.txt
これは実用に堪えるレベルだと思う。
FindUsageAppにOptions.DEFAULTを指定した場合。「プロシジャ一覧を作る」のモジュールが追加されるため、やや冗長なpuファイルとクラス図が生成された。
FindUsageAppにOptions.RELAXを指定した場合。RubberDuckによるユニットテストのためのモジュールが全部収録され、モジュールの総数がほぼ倍増する。大変に冗長なpuファイルが生成された。
test_writeDiagram_Options_RELAXED.pu.txt
puファイルからPlantUMLで画像を生成しようとしたが、データが大きすぎて処理できなかった。実用的でない。
とりあえずこのissueをクローズする。
v0.1.10。
v0.1.7のOptionsクラス https://github.com/kazurayam/VBAProcedureUsageAnalyzer/blob/0.1.7/lib/src/main/java/com/kazurayam/vba/Options.java がこうなっている。17行目
モジュールの名前が "Test" で始まるか、または "Test"で終わるかをチェックしている。例えば
とか
とかが該当する。
VBEditorへ追加する拡張 Rubberduck を使ってユニットテストを実装することができる。それをやると名前が"Test"で始まるか”Test"で終わるモジュールを作ることになる。ユニットテストを真面目にやればやるほどモジュールが増える。モジュールが増えると最終的に描画されるクラス図が混雑してしまう。
そこでOptionsクラスのshouldExcludeメソッドを経由して、Indexerクラスがユニットテストのためのモジュールを無視してクラスの矩形をそもそも生成しないように、そういう選択が可能なようにした。それがOptionsの17行めだ。
ところがRubberduckによるユニットテストの他に モジュールを無視してしまいたい場合もある。#14 で示したように「プロシージャー一覧を作る」モジュールをkazurayamは無視したい。
もっと別の名前のモジュールを無視したくなることもあるだろう。だから実行時に除外対象のモジュールを指定できるようにOptionsクラスを修正しよう。