中西です。
NAntのユニットテストコードを眺めていたら、
リフレクションで、同一アセンブリ内の全てのテストスイート
を収集する方法が使用されていました。
なるほどと思ったので、報告しておきます。
C#の例
using System;
using System.IO;
using System.Reflection;
using NUnit.Framework;
namespace Sample.Tests
{
public class AllTests
{
public static ITest Suite
{
get
{
Assembly assembly = Assembly.GetExecutingAssembly();
TestSuite suite = new TestSuite("Sample Tests");
foreach(Type type in assembly.GetTypes())
{
if (type.IsSubclassOf(typeof(TestCase)) &&
!type.IsAbstract)
{
suite.AddTestSuite(type);
}
}
return suite;
}
}
}
}
VB.NETの例
Imports System
Imports System.IO
Imports System.Reflection
Imports NUnit.Framework
Namespace Sample.Tests
Public Class AllTests
Public Shared ReadOnly Property Suite() As ITest
Get
Dim myAssembly As [Assembly] =
[Assembly].GetExecutingAssembly
Dim mySuite As New TestSuite("Sample Tests")
Dim myType As Type
For Each myType In myAssembly.GetTypes
If (myType.IsSubclassOf(GetType(TestCase)) _
AndAlso Not myType.IsAbstract) Then
mySuite.AddTestSuite(myType)
End If
Next
Return mySuite
End Get
End Property
End Class
End Namespace