NUnitからテスト対象のアプリケーションを起動した場合と、アプリケーションを直接起動した場合で、アプリケーションの設定ファイルの場所が変わるようです。
いくつか動作確認を行い、設定ファイルの場所を確認しましたので、メモしておきます。
前提
次の環境で動作確認を行いました。
- Windows 7 64bit
- NUnit 2.6.2(GUI版)
- テストケースとテスト対象アプリケーションは、.NET Framework 4.5で作成。
設定ファイル配置場所
1.NUnitのデフォルト設定の場合
※Process Model=Default、Configuration File Name=未設定
アプリケーションスコープの設定ファイル
ディレクトリは、NUnit Test Projectファイルと同じディレクトリでした。
ファイル名は、NUnit Test Projectファイルの拡張子を「.nunit」→「.config」に変更した名前でした。
(例)
NUnit Test Projectファイルが、「D:\CSharp.NET\ConfigPath\ConfigPath.nunit」の場合は、
設定ファイルは、「D:\CSharp.NET\ConfigPath\ConfigPath.config」。
ユーザースコープの設定ファイル
ディレクトリは、「C:\Users\<ユーザー名>\AppData\Local\NUnit.org\test-domain-<NUnit Test Project名>.<任意文字列>\<NUnitのバージョン>」
ファイル名は、「user.config」でした。
ここで、「<ユーザ名>」は自分のWindowsユーザー名、「<NUnit Test Project名>」はNUnit Test Projectファイルの拡張子「.nunit」を除いた名前、「<任意文字列>」はよくわからない40桁ぐらいの文字列、「<NUnitのバージョン>」はNUnitのバージョンです。
(例)
NUnit Test Projectファイルが、「D:\CSharp.NET\ConfigPath\ConfigPath.nunit」の場合は、
設定ファイルは、「C:\Users\hoge\AppData\Local\NUnit.org\test-domain-ConfigPath.nu_Url_iln2w0o04cny0ph5drhsaep5ehwhqe5q\2.6.2.12296\user.config」。
2.NUnitの設定がProcess Model=Multipleの場合
※Process Model=Multiple、Configuration File Name=未設定
アプリケーションスコープの設定ファイル
ディレクトリは、テストケースのDLLと同じディレクトリでした。
ファイル名は、テストケースのDLLの拡張子を「.dll」→「.dll.config」に変更した名前でした。
(例)
NUnit Test Projectファイルが、「D:\CSharp.NET\ConfigPath\ConfigPathTest\ConfigPathTest.dll」の場合は、
設定ファイルは、「D:\CSharp.NET\ConfigPath\ConfigPathTest\ConfigPathTest.dll.config」。
ユーザースコープの設定ファイル
ディレクトリは、「C:\Users\<ユーザー名>\AppData\Local\NUnit.org\test-domain-<テストケースDLL名>.<任意文字列>\<NUnitのバージョン>」
ファイル名は、「user.config」でした。
ここで、「<テストケースDLL名>」はテストケースのDLLの拡張子を「.dll」→「.dll.config」に変更した名前です。
(例)
NUnit Test Projectファイルが、「D:\CSharp.NET\ConfigPath\ConfigPathTest\ConfigPathTest.dll」の場合は、
設定ファイルは、「C:\Users\hoge\AppData\Local\NUnit.org\test-domain-ConfigPathTest.nu_Url_iln2w0o04cny0ph5drhsaep5ehwhqe5q\2.6.2.12296\user.config」。
補足
ユーザースコープの設定を読み込む場合、ユーザーの設定ファイルが存在しないと、アプリケーションスコープの設定ファイルを読み込みます。
NUnitの設定で、「Configuration File Name」が設定されている場合は、その設定に従って設定ファイルを探すようになりそうです。
NUnitの設定で、Process Modelを「Separate」にした場合、設定ファイルの場所は、Process Modelが「Default」の場合と同じ場所になりそうです。Process Modelが「Single」の場合は未確認です。
NUnitをコンソールアプリケーションとして起動した場合の動作は未確認です。