我写了一些代码来分析测试DLL,提取测试名称以及使用反射标记的名称。
我最初编写该文件是为了分析SpecFlow DLL,但是似乎有些调整后,它对于单元测试DLL仍然可以正常工作。
两者都使用MSTest(VSTest.Console.exe)
我想知道是否有人知道如何区分一种类型的程序集,以便我可以使用相同的代码来分析两种类型的程序集,而不必指定它是哪种类型。
同样,如果有人知道执行此操作的现有工具(从DLL中提取测试列表),那就太好了。我觉得我必须在这里重新发明轮子...
示例文件
Specflow DLL
Unit Test DLL
(您可能需要右键单击它们并取消阻止才能加载它们)
TLDR:如何通过代码检测这些DLL中的哪个是Specflow以及哪个是单元测试?
答案 0 :(得分:1)
嗯,实际上很简单
public static bool IsSpecflowDll(Assembly assembly)
{
var references = assembly.GetReferencedAssemblies();
foreach (var reference in references)
{
if (reference.Name == "TechTalk.SpecFlow")
{
return true;
}
}
return false;
}