最近はようやくUnityやCMockの使い方が分かってきた感じだ。今日は、Eclipseでの便利な設定を試してみた。元ネタ、本家公式サイトからの抜粋。
TEST_IGNOREタグの設定
Eclipseは指定したタグを検索して、タスク・ビューに表示させる機能がある。これに、UnityでのTEST_IGNOREを加えることで、これからするテストに対するリマインダを設定できる。以下を選択。
- ツールバー
- ウィンドウ -> 設定
- C/C++ -> タスク・タグ -> 新規
- ウィンドウ -> 設定
TEST_IGNOREを追加する。その後、プロジェクトを右クリックして、
- インデックス -> 全てのファイルを更新
することで、再度タグの検索が走り、TEST_IGNOREがタスクビューに表示される。
SunShade Pluginでテストコードとソースコード間をいったりきたり
SunShade プラグインを入れると、テストコードとソースコード間をいったりきたりできる。通常は、2画面で並べて作業しているので、出番は少なめかもしれない。
The Sunshade suite of eclipse plugins
ツールバー -> ヘルプ -> 新規ソフトウェアのインストール -> 追加 でhttps://sunshade.sourceforge.net/updateを追加してインストールする。
起動するとエラーした(´・ω・`)SWTエラーが発生しましただと。
Cannot initialize Drop
pluginsディレクトリのnet.sourceforge.sunshade.filedrag_3.4.0というディレクトリを削除したらエラーしなくなった。こんな対処で大丈夫か?
機能を利用するためには、ツールバー -> ウィンドウ -> 設定 -> Sunshade -> Scripted Actionsを選択。たとえば、src/*\*.cとtest/Test***.cの間を行き来するためには、以下のように書く。
importPackage(java.lang, Packages.org.eclipse.ui);
importPackage(Packages.net.sourceforge.sunshade.util);
var wb = PlatformUI.getWorkbench(); // IWorkbench API
var editor = // IEditorPart API
wb.getActiveWorkbenchWindow().getActivePage().getActiveEditor();
if (editor)
{
var input = editor.getEditorInput(); // IEditorInput API
var path = input.getPath(); // IPath API
var filename = path.toOSString();
if (filename.indexOf("Test") == -1) // ここを書き換え
filename = filename.replace("src\\","test\\Test"); // ここを書き換え
else
filename = filename.replace("test\\Test","src\\"); // ここを書き換え
//alert("Filename: " + filename);
FileUtil.openEclipseEditorForFile(filename);
}
Test拡張子以外に対応する場合でも、例えばMock拡張子でも、すこしコードを書き換えれば利用できる。
このSunshadeにはErrorlinkというツールがあるけれども、こっちはうまく動かない。
コードテンプレートの設定
Eclipseのコードテンプレート機能を利用すれば、Ctrl + Spaceでテストのテンプレートを呼び出すことができる。
レッツ メタプログラミング(^O^)/
ツールバー -> ウィンドウ -> 設定 -> C/C++ -> エディタ- -> テンプレートを選択。
新規を選択して、テスト用のテンプレートを記述する。たとえば、Unityのフィクスチャ機能のテンプレートは以下。
TEST(${test_group_name},${test_case_name})
{
${line_selection}${cursor}
TEST_IGNORE_MESSAGE("${test_case_name} Needs Definition.");
}
RUN_TEST_CASE(${test_group_name}, ${test_case_name});
別にテンプレートを利用しなくても、testまで書いて Ctrl + Spaceである程度の自動補完はできる。