protected override Task <List <FileDataValue> > ComputeFileDataValuesAsync(string filePath, CancellationToken cancellationToken)
            {
                Debug.Assert(PackageJsonFactory.IsPackageJsonFile(filePath), $"{filePath} should be a package.json file");

                var packageJson = PackageJsonFactory.Create(this.EnsureRooted(filePath));

                var main = packageJson.Main;

                var fileDataValues = new List <FileDataValue>();

                if (!string.IsNullOrEmpty(main))
                {
                    var launchSettings = new PropertySettings
                    {
                        [LaunchConfigurationConstants.NameKey] = $"node {main} (package.json)",
                        [LaunchConfigurationConstants.TypeKey] = "default"
                    };

                    fileDataValues.Add(new FileDataValue(
                                           DebugLaunchActionContext.ContextTypeGuid,
                                           DebugLaunchActionContext.IsDefaultStartupProjectEntry,
                                           launchSettings,
                                           target: main));

                    // Target has to match the name used in the debug action context so it can be found during project configuration
                    fileDataValues.Add(new FileDataValue(DebugLaunchActionContext.ContextTypeGuid, main, null, target: main));

                    // Also need a null target so that can be found for the context menu when querying for build configurations.
                    // (See Microsoft.VisualStudio.Workspace.VSIntegration.UI.FileContextActionsCommandHandlersProvider.Provider.GetActionProviderForProjectConfiguration)
                    fileDataValues.Add(new FileDataValue(DebugLaunchActionContext.ContextTypeGuid, main, null, target: null));
                }
                return(Task.FromResult(fileDataValues));
            }
Exemple #2
0
 public void DiscoverTests(IEnumerable <string> sources, IDiscoveryContext discoveryContext, IMessageLogger logger, ITestCaseDiscoverySink discoverySink)
 {
     AssemblyResolver.SetupHandler();
     foreach (var source in sources)
     {
         // we're only interested in package.json files here.
         if (PackageJsonFactory.IsPackageJsonFile(source))
         {
             this.DiscoverTestFiles(source, logger, discoverySink);
         }
     }
 }
Exemple #3
0
            protected override Task <List <FileReferenceInfo> > ComputeFileReferencesAsync(string filePath, CancellationToken cancellationToken)
            {
                Debug.Assert(PackageJsonFactory.IsPackageJsonFile(filePath), $"{filePath} should be a package.json file");

                var packageJson    = PackageJsonFactory.Create(filePath);
                var main           = packageJson.Main;
                var fileReferences = new List <FileReferenceInfo>
                {
                    new FileReferenceInfo(main,
                                          context: "Debug",
                                          target: main,
                                          referenceType: (int)FileReferenceInfoType.Output)
                };

                return(Task.FromResult(fileReferences));
            }
        public void DiscoverTests(IEnumerable <string> sources, IDiscoveryContext discoveryContext, IMessageLogger logger, ITestCaseDiscoverySink discoverySink)
        {
            AssemblyResolver.SetupHandler();

            var settings = new UnitTestSettings(discoveryContext.RunSettings);

            this.frameworkDiscoverer = this.frameworkDiscoverer ?? new FrameworkDiscoverer(settings.TestFrameworksLocation);

            foreach (var source in sources)
            {
                // we're only interested in package.json files here.
                if (PackageJsonFactory.IsPackageJsonFile(source))
                {
                    this.DiscoverTestFiles(source, logger, discoverySink);
                }
            }
        }
Exemple #5
0
            private INpmController CreateController(string packageJsonPath)
            {
                Debug.Assert(Path.IsPathRooted(packageJsonPath));
                Debug.Assert(PackageJsonFactory.IsPackageJsonFile(packageJsonPath));

                var projectHome = Path.GetDirectoryName(packageJsonPath);

                var npmController = NpmControllerFactory.Create(
                    projectHome,
                    NodejsConstants.NpmCachePath,
                    isProject: false);

                npmController.ErrorLogged     += this.WriteNpmOutput;
                npmController.ExceptionLogged += this.WriteNpmException;
                npmController.OutputLogged    += this.WriteNpmOutput;

                return(npmController);
            }
 protected override Task <bool> IsValidFileAsync(string filePath)
 {
     return(Task.FromResult(PackageJsonFactory.IsPackageJsonFile(filePath)));
 }
Exemple #7
0
 private static bool EnsurePackageJson(WorkspaceVisualNodeBase node)
 {
     return(node is IFileNode fileNode && PackageJsonFactory.IsPackageJsonFile(fileNode.FileName));
 }