我编写了一些代码来分析测试DLL,并使用反射提取测试名称和标签。 我最初编写它来分析SpecFlow DLL,但它似乎适用于单元测试DLL,并进行了一些调整。 两者都在使用MSTest(VSTest.Console.exe) 我想知道是否有人知道如何区分一种类型的装配与另一种装配,因此我可以使用相同的代码来分析任何一种装配,而不必指定它是什么类型。 此外,如果有人知道这样做的现有工具(从DLL中提取测试列表),那将是很好的。我有点觉得我必须在这里重新发明轮子......
示例文件 Specflow DLL Unit Test DLL (您可能需要右键单击这些并取消阻止才能加载它们)
TLDR:如何通过代码检测这些DLL中的哪一个是Specflow,哪个是单元测试?
呃,实际上很简单
public static bool IsSpecflowDll(Assembly assembly)
{
var references = assembly.GetReferencedAssemblies();
foreach (var reference in references)
{
if (reference.Name == "TechTalk.SpecFlow")
{
return true;
}
}
return false;
}