3
A
回答
5
您可以使用Assembly.LoadFile方法將DLL加載到Assembly對象。然後使用Assembly.GetTypes方法獲取在程序集中定義的所有類型。然後使用GetCustomAttributes方法,您可以檢查類型是否用[TestFixture]屬性修飾。如果你想快速的修改,你可以在每個屬性上調用.GetType()。ToString(),並檢查字符串是否包含「TestFixtureAttribute」。
您還可以檢查每種類型中的方法。使用方法Type.GetMethods來檢索它們,並在它們每個上使用GetCustomAttributes,這次搜索「TestAttribute」。
0
以防萬一有人需要工作解決方案。由於無法卸載以此方式加載的程序集,因此最好將它們加載到另一個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);
相關問題
- 1. 測試DLL「不是一個NUnit測試」(含答案)
- 2. 如何在nunit測試運行器框架中包含.cs文件?
- 3. 如何在sonarcube中包含nunit測試結果4.5.1 c#plugin 3.3 sonar-project.properties文件?
- 4. 查找任何套件中未包含的JUnit 3測試?
- 5. NUnit的將不會加載我的單元測試.dll文件
- 6. 如何包含已包裝到新dll中的dll文件?
- 7. NUnit的單元測試找不到在測試類中的非託管的DLL
- 8. 如何獲得包含在dll文件
- 9. 使用Fortran DLL進行NUnit測試
- 10. 使用硒和Nunit測試我如何斷言表格包含特定文本
- 11. 使用NUnIt測試DLL-如何知道使用哪個配置文件
- 12. 如何在casper測試文件中包含文件內容?
- 13. 如何查找包含特定文件的包?
- 14. 如何從NUnit測試生成文檔?
- 15. 如何測試NUnit助手?
- 16. 如何運行NUnit測試?
- 17. 如何運行Nunit測試?
- 18. 如何用Nunit測試Nhibernate?
- 19. 如何從NUnit測試
- 20. 如何訂購NUnit測試
- 21. NUNIT測試c#中的日誌文件
- 22. 如何查找文件並在其中包含其他文件?
- 23. 如何製作包含DLL文件的JAR文件?
- 24. 如何在Centos7中查找包含特定文本的文件?
- 25. Maven Shade插件 - 如何包含測試類和測試資源?
- 26. 如何測試我的安裝程序是否包含文件?
- 27. 如何爲測試包含排除的源文件?
- 28. 爲包含空格的測試文件夾查詢使用rally_api
- 29. Nunit測試配置文件被覆蓋
- 30. NUnit-Console在NUnit 3.x中找不到用於NUnitForms測試的測試裝置