Esempio n. 1
0
        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);
                }
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
            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);
            }