raviyoshi

オープンソースのソースコードを読んだメモとか。

2008年7月29日火曜日

名前空間

名前空間は、Javaでいうパッケージみたいなものです。以下はNUnit.Coreという名前空間を宣言する例です。

namespace NUnit.Core
{
  ...
  public class TestCase
  {
    ...
}

Javaのパッケージとは違い、名前空間はディレクトリ名と一致させる必要はありません。また、ドメインを逆に並べる慣習もないようです。

1つのファイルに複数の名前空間を宣言することも可能です。しかし、複数の名前空間を宣言するくらいならば、複数のファイルに分割した方が良いのではないかという気がします。
何か便利な使い道があるのかもしれませんが。

ラベル:

2008年7月26日土曜日

NUnit 2.4.8を読んでみる

C#について学ぶために、NUnitのソースを読んでみることにしました。NUnitは.NET Framework用のテスティングフレームワークです。

さっそくNUnit 2.4.8のソースコードをダウンロードしたところ、VS.NET 2003用と2005用のソリューションが含まれていました。今回は2005の方を使って読んでみます。

ソリューションは29ものプロジェクトからなります。しかし、それらの中にはNUnitのユニットテスト用のプロジェクトやサンプルのプロジェクトが含まれています。そのため、NUnit本体のプロジェクトはその1/3くらいです。NUnit本体のプロジェクトの依存関係を図にしてみました。
プロジェクト名の末尾の"_VS2005"は省略しました。

図中のnunit-gui.exeプロジェクトがGUIのテストランナーのexeファイルを出力するプロジェクトです。

NUnitはGUI版のテストランナーだけでなく、CUI版もあります。CUI版のテストランナーはnunit-console.exeプロジェクトから出力されます。GUI版と参照関係が似ているので、図には含めませんでした。

また、nunit.framework.dllプロジェクトとnunit.framework.extensions.dllプロジェクトは、テストクラスを作成する際に参照するDLLを出力するプロジェクトです。

図より、nunit.core.dllプロジェクトやnunit.core.interfaces.dllプロジェクトへの依存が多いことがわかります。

ラベル: ,

2008年7月25日金曜日

テスト

テスト投稿。