public DotvvmProjectMetadata CreateDefaultConfiguration(string directory) { var metadata = new DotvvmProjectMetadata() { Version = 1, ProjectDirectory = directory, MetadataFilePath = Path.Combine(directory, MetadataFileName) }; // find *.csproj file in the directory var csprojService = new CSharpProjectService(); var csproj = csprojService.FindCsprojInDirectory(directory); if (csproj != null) { csprojService.Load(csproj); metadata.RootNamespace = csprojService.GetRootNamespace(); metadata.ProjectName = csprojService.GetAssemblyName(); } return(metadata); }
public override void Handle(Arguments args, DotvvmProjectMetadata dotvvmProjectMetadata) { // make sure the test directory exists if (string.IsNullOrEmpty(dotvvmProjectMetadata.UITestProjectPath)) { dotvvmProjectMetadata.UITestProjectPath = ConsoleHelpers.AskForValue($"Enter the path to the test project\n(relative to DotVVM project directory, e.g. '..\\{dotvvmProjectMetadata.ProjectName}.Tests'): "); } var testProjectDirectory = dotvvmProjectMetadata.GetUITestProjectFullPath(); if (!Directory.Exists(testProjectDirectory)) { throw new Exception($"The directory {testProjectDirectory} doesn't exist!"); } // make sure we know the test project namespace if (string.IsNullOrEmpty(dotvvmProjectMetadata.UITestProjectRootNamespace)) { var csprojService = new CSharpProjectService(); var csproj = csprojService.FindCsprojInDirectory(testProjectDirectory); if (csproj != null) { csprojService.Load(csproj); dotvvmProjectMetadata.UITestProjectRootNamespace = csprojService.GetRootNamespace(); } else { dotvvmProjectMetadata.UITestProjectRootNamespace = ConsoleHelpers.AskForValue("Enter the test project root namespace: "); if (string.IsNullOrEmpty(dotvvmProjectMetadata.UITestProjectRootNamespace)) { throw new Exception("The test project root namespace must not be empty!"); } } } // generate the test stubs var name = args[0]; var files = ExpandFileNames(name); foreach (var file in files) { Console.WriteLine($"Generating stub for {file}..."); // determine full type name and target file var relativePath = PathHelpers.GetDothtmlFileRelativePath(dotvvmProjectMetadata, file); var relativeTypeName = PathHelpers.TrimFileExtension(relativePath) + "Helper"; var fullTypeName = dotvvmProjectMetadata.UITestProjectRootNamespace + "." + PathHelpers.CreateTypeNameFromPath(relativeTypeName); var targetFileName = Path.Combine(dotvvmProjectMetadata.UITestProjectPath, "Helpers", relativeTypeName + ".cs"); // generate the file //var generator = new SeleniumHelperGenerator(); //var config = new SeleniumGeneratorConfiguration() //{ // TargetNamespace = PathHelpers.GetNamespaceFromFullType(fullTypeName), // HelperName = PathHelpers.GetTypeNameFromFullType(fullTypeName), // HelperFileFullPath = targetFileName, // ViewFullPath = file //}; //generator.ProcessMarkupFile(DotvvmConfiguration.CreateDefault(), config); } }