public void ExploreAssembly(IMetadataAssembly assembly, IProject project, UnitTestElementConsumer consumer) { foreach (IMetadataTypeInfo type in assembly.GetTypes()) { if (!IsTestFixture(type)) { continue; } var fixture = new MSTestFixtureElement(this, project, type.FullyQualifiedName, assembly.Location); fixture.SetExplicit(GetExplicitString(type)); consumer(fixture); int order = 0; foreach (IMetadataMethod method in GetAllTestMethods(type)) { if (!IsTestMethod(method)) { continue; } var testElement = new MSTestElement(this, fixture, project, method.DeclaringType.FullyQualifiedName, method.Name, order++); testElement.SetExplicit(GetExplicitString(method)); consumer(testElement); } } }
protected virtual void PresentTest(MSTestElement value, IPresentableItem item, TreeModelNode modelNode, PresentationState state) { item.Clear(); if (value.Fixture.GetTypeClrName() != value.GetTypeClrName()) { item.RichText = string.Format("{0}.{1}", new CLRTypeName(value.GetTypeClrName()).ShortName, value.MethodName); } else { item.RichText = value.MethodName; } if (value.IsExplicit) { item.RichText.SetForeColor(SystemColors.GrayText); } Image typeImage = UnitTestManager.GetStandardImage(UnitTestElementImage.Test); Image stateImage = UnitTestManager.GetStateImage(state); if (stateImage != null) { item.Images.Add(stateImage); } else if (typeImage != null) { item.Images.Add(typeImage); } }
public void ProcessBeforeInterior(IElement element) { var declaration = element as IDeclaration; if (declaration == null) { return; } MSTestElementBase testElement = null; IDeclaredElement declaredElement = declaration.DeclaredElement; var typeElement = declaredElement as ITypeElement; if (typeElement != null && IsTestFixture(typeElement)) { MSTestFixtureElement fixtureElement; if (!myFixtures.ContainsKey(typeElement)) { fixtureElement = new MSTestFixtureElement(myProvider, myProject, typeElement.CLRName, myAssemblyPath); myFixtures.Add(typeElement, fixtureElement); myOrders.Add(typeElement, 0); } else { fixtureElement = myFixtures[typeElement]; } testElement = fixtureElement; int order = 0; AppendTests(fixtureElement, typeElement.GetSuperTypes(), ref order); } var typeMember = declaredElement as ITypeMember; if (typeMember != null && IsTestMethod(typeMember)) { ITypeElement type = typeMember.GetContainingType(); if (type != null) { MSTestFixtureElement fixtureElement = myFixtures[type]; if (fixtureElement != null) { int order = myOrders[type] + 1; myOrders[type] = order; testElement = new MSTestElement(myProvider, fixtureElement, myProject, type.CLRName, typeMember.ShortName, order); } } } if (testElement == null) { return; } var disposition = new UnitTestElementDisposition(testElement, myFile.ProjectFile, declaration.GetNameRange(), declaration.GetDocumentRange().TextRange); myConsumer(disposition); }