我有一个包含许多dll文件的文件夹。其中一个包含nunit测试(用[Test]属性标记的函数)。我想从C#代码中运行nunit测试。是否有办法找到正确的dll文件?
谢谢
我有一个包含许多dll文件的文件夹。其中一个包含nunit测试(用[Test]属性标记的函数)。我想从C#代码中运行nunit测试。是否有办法找到正确的dll文件?
谢谢
以防万一有人需要可行的解决方案。由于无法卸载以这种方式加载的程序集,最好在另一个AppDomain中加载它们。
public class ProxyDomain : MarshalByRefObject
{
public bool IsTestAssembly(string assemblyPath)
{
Assembly testDLL = Assembly.LoadFile(assemblyPath);
foreach (Type type in testDLL.GetTypes())
{
if (type.GetCustomAttributes(typeof(NUnit.Framework.TestFixtureAttribute), true).Length > 0)
{
return true;
}
}
return false;
}
}
AppDomainSetup ads = new AppDomainSetup();
ads.PrivateBinPath = Path.GetDirectoryName("C:\\some.dll");
AppDomain ad2 = AppDomain.CreateDomain("AD2", null, ads);
ProxyDomain proxy = (ProxyDomain)ad2.CreateInstanceAndUnwrap(typeof(ProxyDomain).Assembly.FullName, typeof(ProxyDomain).FullName);
bool isTdll = proxy.IsTestAssembly("C:\\some.dll");
AppDomain.Unload(ad2);
type.GetCustomAttributes(typeof(NUnit.Framework.TestFixtureAttribute), true)
。 - Santosh Mif (type.GetCustomAttributes(typeof(NUnit.Framework.TestFixtureAttribute), true).Length > 0) { Console.WriteLine("--->" + type.Name); } } } - Santosh M