private void ExploreTestMethod(IProject project, XunitTestClassElement classUnitTestElement, IUnitTestElementsObserver observer, IMethodInfo methodInfo) { var methodUnitTestElement = unitTestElementFactory.GetOrCreateTestMethod(project, classUnitTestElement, new ClrTypeName(methodInfo.TypeName), methodInfo.Name, MethodUtility.GetSkipReason(methodInfo), methodInfo.GetTraits(), false); observer.OnUnitTestElement(methodUnitTestElement); }
private void ExploreTestMethod(IProject project, XunitTestClassElement classUnitTestElement, UnitTestElementConsumer consumer, IMethodInfo methodInfo) { var methodUnitTestElement = unitTestElementFactory.GetOrCreateTestMethod(project, classUnitTestElement, new ClrTypeName(methodInfo.TypeName), methodInfo.Name, MethodUtility.GetSkipReason(methodInfo), methodInfo.SafelyGetTraits(), false); consumer(methodUnitTestElement); }
public static XunitTestMethodElement GetTestMethod(IProject project, XunitTestClassElement classElement, IClrTypeName typeName, string methodName) { var id = GetTestMethodId(classElement, typeName, methodName); var unitTestElementManager = project.GetSolution().GetComponent <IUnitTestElementManager>(); return(unitTestElementManager.GetElementById(project, id) as XunitTestMethodElement); }
private void AppendTests(XunitTestClassElement classElement, ITypeInfo typeInfo, IEnumerable <IDeclaredType> types) { foreach (var declaredType in types) { if (declaredType.GetClrName().Equals(PredefinedType.OBJECT_FQN)) { continue; } var typeElement = declaredType.GetTypeElement(); if (typeElement != null) { var methodInfo = new PsiMethodInfoAdapter(); foreach (var method in typeElement.GetMembers().OfType <IMethod>()) { methodInfo.Reset(method, typeInfo); if (MethodUtility.IsTest(methodInfo)) { var element = unitTestElementFactory.GetOrCreateTestMethod(project, classElement, typeElement.GetClrName(), method.ShortName, MethodUtility.GetSkipReason(methodInfo), methodInfo.GetTraits(), false); observer.OnUnitTestElementDisposition(UnitTestElementDisposition.NotYetClear(element)); } } } } }
public XunitTestClassElement GetOrCreateTestClass(string id, IProject project, IClrTypeName typeName, string assemblyLocation, OneToSetMap <string, string> traits) { lock (lockObject) { var elementId = services.CreateId(project, id); var element = GetElementById <XunitTestClassElement>(elementId); if (element == null) { element = new XunitTestClassElement(services, elementId, typeName.GetPersistent(), assemblyLocation); CacheElement(elementId, element); } element.State = UnitTestElementState.Valid; // Assembly location might have changed if someone e.g. switches from debug to release element.AssemblyLocation = assemblyLocation; services.ElementManager.RemoveElements(element.Children.Where(c => c.State == UnitTestElementState.Invalid).ToSet()); UpdateCategories(element, traits); return(element); } }
private static string GetTestMethodId(XunitTestClassElement classElement, IClrTypeName typeName, string methodName) { var baseTypeName = string.Empty; if (!classElement.TypeName.Equals(typeName)) { baseTypeName = typeName.ShortName + "."; } return(string.Format("{0}.{1}{2}", classElement.Id, baseTypeName, methodName)); }
public static XunitTestMethodElement CreateTestMethod(IUnitTestProvider provider, IProject project, DeclaredElementProvider declaredElementProvider, XunitTestClassElement classElement, IClrTypeName typeName, string methodName, string skipReason, JetHashSet <string> categories, bool isDynamic = false) { var id = GetTestMethodId(classElement, typeName, methodName); return(new XunitTestMethodElement(provider, classElement, new ProjectModelElementEnvoy(project), declaredElementProvider, id, typeName.GetPersistent(), methodName, skipReason, categories, isDynamic)); }
private void PresentClassElement(XunitTestClassElement value, IPresentableItem item, TreeModelNode modelNode, PresentationState state) { if (IsNodeParentNatural(modelNode, value)) { item.RichText = value.TypeName.ShortName; } else if (string.IsNullOrEmpty(value.TypeName.GetNamespaceName())) { item.RichText = value.TypeName.ShortName; } else { item.RichText = string.Format("{0}.{1}", value.TypeName.GetNamespaceName(), value.TypeName.ShortName); } }
public XunitTestMethodElement GetOrCreateTestMethod(IProject project, XunitTestClassElement testClassElement, IClrTypeName typeName, string methodName, string skipReason, MultiValueDictionary <string, string> traits, bool isDynamic) { var categories = GetCategories(traits); var element = GetTestMethod(project, testClassElement, typeName, methodName); if (element != null) { element.State = UnitTestElementState.Valid; element.SetCategories(categories); return(element); } return(CreateTestMethod(provider, project, declaredElementProvider, testClassElement, typeName, methodName, skipReason, categories, isDynamic)); }
public XunitTestMethodElement GetOrCreateTestMethod(IProject project, XunitTestClassElement testClassElement, IClrTypeName typeName, string methodName, string skipReason, OneToSetMap <string, string> traits, bool isDynamic) { var baseTypeName = string.Empty; if (!testClassElement.TypeName.Equals(typeName)) { baseTypeName = typeName.ShortName + "."; } var id = string.Format("{0}.{1}{2}", testClassElement.Id.Id, baseTypeName, methodName); return(GetOrCreateTestMethod(id, project, testClassElement, typeName, methodName, skipReason, traits, isDynamic)); }
public XunitTestMethodElement(IUnitTestProvider provider, XunitTestClassElement testClass, ProjectModelElementEnvoy projectModelElementEnvoy, DeclaredElementProvider declaredElementProvider, string id, IClrTypeName typeName, string methodName, string skipReason, JetHashSet <string> categories, bool isDynamic) : base(provider, testClass, id, projectModelElementEnvoy, categories) { this.declaredElementProvider = declaredElementProvider; IsDynamic = isDynamic; TypeName = typeName; MethodName = methodName; ExplicitReason = skipReason; ShortName = MethodName; if (isDynamic) { SetState(UnitTestElementState.Dynamic); } presentation = IsTestInParentClass() ? methodName : string.Format("{0}.{1}", TypeName.ShortName, MethodName); }
public XunitTestMethodElement GetOrCreateTestMethod(string id, IProject project, XunitTestClassElement testClassElement, IClrTypeName typeName, string methodName, string skipReason, OneToSetMap <string, string> traits, bool isDynamic) { lock (lockObject) { var elementId = services.CreateId(project, id); var element = GetElementById <XunitTestMethodElement>(elementId); if (element == null) { element = new XunitTestMethodElement(services, elementId, typeName, methodName, skipReason, isDynamic); CacheElement(elementId, element); } element.Parent = testClassElement; element.State = UnitTestElementState.Valid; UpdateCategories(element, traits); return(element); } }