private bool DetectFromRuntimeReference(GeneratorInfo generatorInfo) { var specFlowRef = VsxHelper.GetReference(project, "TechTalk.SpecFlow"); if (specFlowRef == null) { return(false); } var specFlowRefPath = specFlowRef.Path; if (string.IsNullOrWhiteSpace(specFlowRefPath)) { return(false); } string runtimeFolder = Path.GetDirectoryName(specFlowRefPath); if (runtimeFolder == null) { return(false); } tracer.Trace("Runtime found at " + runtimeFolder, "VsGeneratorInfoProvider"); return(probingPaths.Select(probingPath => Path.GetFullPath(Path.Combine(runtimeFolder, probingPath))) .Any(probingPath => DetectFromFolder(generatorInfo, probingPath))); }
private ITestRunnerGateway GetCurrentTestRunnerGateway(Project project) { if (VsxHelper.GetReference(project, "TechTalk.SpecRun") != null) { return(container.Resolve <ITestRunnerGateway>(TestRunnerTool.SpecRun.ToString())); } var reSharperAssembly = AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(a => a.GetName().Name == "JetBrains.ReSharper.UnitTestFramework"); if (reSharperAssembly != null) { if (reSharperAssembly.GetName().Version.Major <= 5) { return(container.Resolve <ITestRunnerGateway>(TestRunnerTool.ReSharper5.ToString())); } return(container.Resolve <ITestRunnerGateway>(TestRunnerTool.ReSharper.ToString())); } if (ideIntegration == IdeIntegration.Install.IdeIntegration.VisualStudio2012) { return(container.Resolve <ITestRunnerGateway>(TestRunnerTool.VisualStudio2012.ToString())); } if (VsxHelper.GetReference(project, "Microsoft.VisualStudio.QualityTools.UnitTestFramework") != null) { return(container.Resolve <ITestRunnerGateway>(TestRunnerTool.VisualStudio2010MsTest.ToString())); } MessageBox.Show( "Could not find matching test runner. Please specify the test runner tool in 'Tools / Options / SpecFlow'", "SpecFlow", MessageBoxButton.OK, MessageBoxImage.Error); return(null); }
public BindingAssemblyInfo(string assemblyName, Project mainProject) { AssemblyName = assemblyName; Project = VsxHelper.FindProjectByAssemblyName(mainProject.DTE, AssemblyShortName); if (Project != null && VsProjectScope.GetTargetLanguage(Project) == ProgrammingLanguage.FSharp) //HACK: we force the f# libs to be used as assembly reference { Project = null; } if (Project == null) { Reference = VsxHelper.GetReference(mainProject, assemblyName); } }
private bool DetectDirectGeneratorReference(GeneratorInfo generatorInfo) { var specFlowGeneratorRef = VsxHelper.GetReference(project, generatorAssemblyName); if (specFlowGeneratorRef == null) { return(false); } tracer.Trace("Direct generator reference found", "VsGeneratorInfoProvider"); generatorInfo.GeneratorAssemblyVersion = new Version(specFlowGeneratorRef.Version); generatorInfo.GeneratorFolder = Path.GetDirectoryName(specFlowGeneratorRef.Path); return(true); }
private string FindConsolePath(Project project) { var specRunRef = VsxHelper.GetReference(project, "TechTalk.SpecRun"); if (specRunRef == null) { return(null); } if (specRunRef.Path == null) { return(null); } string runtimeFolder = Path.GetDirectoryName(specRunRef.Path); if (runtimeFolder == null) { return(null); } string fromRuntimePackage = probingPaths.Select(probingPath => Path.GetFullPath(Path.Combine(runtimeFolder, probingPath))) .Select(GetConsolePath).FirstOrDefault(cp => cp != null); if (fromRuntimePackage != null) { return(fromRuntimePackage); } string nuGetPackagesFolder = Path.GetFullPath(Path.Combine(runtimeFolder, @"..\..\..")); if (!Directory.Exists(nuGetPackagesFolder)) { return(null); } var latestRunnerPackage = Directory.GetDirectories(nuGetPackagesFolder, "SpecRun.Runner.*").OrderByDescending(d => d) .Select(s => GetConsolePath(s + @"\tools")).FirstOrDefault(cp => cp != null); return(latestRunnerPackage); }
private string FindConsolePath(Project project) { var specRunRef = VsxHelper.GetReference(project, "TechTalk.SpecRun"); if (specRunRef == null) { return(null); } if (specRunRef.Path == null) { return(null); } string runtimeFolder = Path.GetDirectoryName(specRunRef.Path); if (runtimeFolder == null) { return(null); } return(probingPaths.Select(probingPath => Path.GetFullPath(Path.Combine(runtimeFolder, probingPath))) .Select(GetConsolePath).FirstOrDefault(cp => cp != null)); }
private bool IsInSpecFlowProject(Project project) { return(VsxHelper.GetReference(project, "TechTalk.SpecFlow") != null); }
public static bool IsSpecRunProject(Project project) { return(VsxHelper.GetReference(project, "TechTalk.SpecRun") != null || VsxHelper.GetReference(project, "SpecFlow.Plus.Runner") != null); }