Samba経由でNUnit実行はやめたほうがよさそうです

背景

Samba経由でNUnitを実行したら,見たことの無いエラーに悩まされました.

概要

Mac miniソースコードを置いてSambaでWindows XP SP3のネットワークドライブとして割り当てて,そこからVisual Stuido 2008とNUnit 2.5.2でコーディングとテスト環境を構築しました.そうすると,NUnit GUIからアセンブラが読み込めない,読み込めたとしてもTestCaseが見えない状態になりました.

経緯

VS2008はExpress版なのでTestBuilderが提供するVisualStudioのプラグインが使えません.そのためNUnitGUIを使いプロジェクトを構築してテストを実行しようとしました.アセンブリファイルを読み込むと,NUnit GUIでnet-0.0 frameworkがないとArgumentException例外が発生してファイル読み込みができません.
NUnitGUIからFrameworkをMonoに切り替えるとアセンブラが読みこめます.テストを実行するたびNUnit GUIが落ちたりしますがテスト自体は実行できました.しかしそのうちに,アセンブラファイルを読み込んでもTestCaseがリストアップされなくなりました.
Windows側の環境に原因があると考え,Monoをアンインストールしたり,ちょっとイレギュラーな作り方をしていたVS2008のプロジェクトファイルを再作成して設定を見返すなどやっていました.

解決

結局Windowsのローカルディスクにファイルを置けば普通にテストが実行できました.

理由?

ネットワークドライブには名前空間をフォルダ名にしてソースコードを置いていただけですので,なぜこうなるのか合理的な説明は思いつきません.ひょっとしたらsqlite3.dllなどのいろいろなところで共有利用するファイルはMac mini側でシンボリックリンクで置いていたのですが,これがWindowsからは普通のファイルとして読み出せなかったのかしらと思うくらいです.でも,それが原因でアセンブラファイルが読み込めない,あるいはTestCaseがリストアップされないなんてわけがないので,なぜかなというところです.

改善

いちいち手動でコピーするのは手間なのでMac miniWindows間でgitを使いソース管理をすることにしました.