読者です 読者をやめる 読者になる 読者になる

Natural Software

KinectなどのDepthセンサーを中心に活動しています

TestLink へ単体テストの結果を自動で登録する

C# TestLink

先日 TestLink の ML で川西さんから少し話が出た TestLink Adapter を早速試してみた。
これを使うと、C#VB.NETNUnit単体テストした結果を自動で TestLink に蓄積することができるようになる。

環境

Visual Studio 側の手順

1. ここからNunit TestLink Exporter Binaries.zip」 をダウンロードする
2. 解凍したフォルダにある DLL を NUnit の addins フォルダ(通常は「C:\Program Files\NUnit 2.4.8\bin\addins」)にコピー


3. C# のプロジェクト作成でクラスライブラリを選択
4. 参照設定で「nunit.framework」と「TestLinkFixture」を追加
5. テストプログラムを作成
なお、パラメータは以下の通り
- Url:TestLinkXML-RPC サーバの URL(TestLink の URL + 「/lib/api/xmlrpc.php」)
- ProjectName:結果を登録するプロジェクト名
- UserId:テストケースの作成者に記載するユーザ名
- TestPlan:テスト計画名
- TestSuite:テストスイート名
- DevKey:APIキー

using NUnit.Framework;
using Meyn.TestLink;

namespace CalcTestNamespace
{
    [TestFixture]
    [TestLinkFixture(
        Url = "http://localhost/testlink/lib/api/xmlrpc.php",
        ProjectName = "NUnitTest",
        UserId = "kaorun",
        TestPlan = "自動単体テスト",
        TestSuite = "NUnitTestResult",
        DevKey = "8213fe55d3122b3265d8b4012d2907f8" )] 
    public class CalcTest
    {
        [Test]
        public void testAdd()
        {
            Assert.AreEqual( 1, 1 );
        }
    }
}

6. ビルドする

TestLink 側の手順

1. テストプロジェクトを作成する(一応「自動テスト機能」にチェックを入れた)


2. テストプロジェクトの直下にテストスイートを作成する


3. テスト計画を作成する


4. ビルドを作成する(なんでもよさそう)


5. ビルドしたらコマンドプロンプトを開き、 Debug または Release フォルダに移って「nunit-console CalcTest.dll」を実行(C:\Program Files\NUnit 2.4.8\bin を環境変数に登録すると良い)


6. 実行後テスト仕様を見るとテストケースが登録されている


7. テスト実行画面をみると結果が表示される


8. テストを失敗させると結果も失敗で登録される

まとめ

これで単体テストTestLink の連携ができたので

  • SVN コミット → Hudson でビルド → Hudson で実行 → 結果を TestLink へ登録

という流れができた。

また、ローカルでの開発時は「TetsDriven.NET」を利用すれば結果が TestLink に反映されることもなさそうなので使い分けもできる。

プログラマからすると TestLink の導入は単体テストからのアプローチというのもアリではないかと思うところもあるので一つの方法として確立できればよさそう^^