/// <summary> /// Run cypress test project /// </summary> /// <param name="strategy"><see cref="EstrategiaDTO"/></param> public void RunCypressTest(EstrategiaDTO strategy) { foreach (TipoPruebaDTO tipoPrueba in strategy.TipoPruebas) { TipoPruebaController tipoPruebaController = new TipoPruebaController(); int idExecution = tipoPruebaController.InsertEjecucionTipoPrueba(strategy.Estrategia_ID, strategy.TipoPruebas[0].ID, 0, "", EstadoEnum.EnEjecucion); string testProject = Path.Combine(GetScriptProjectPath(), @"wwwroot\uploads"); string destinationFolder = @"C:\Temp"; string scriptPath = string.Concat(testProject, strategy.TipoPruebas.First().Script.Script); string destinationPath = string.Concat(destinationFolder, @"\", Path.GetFileNameWithoutExtension(scriptPath)); if (!File.Exists(scriptPath)) { String msg = String.Format("{0} do not exist. Please verify the information provided.", scriptPath); Console.WriteLine(msg); return; } // Extract the zip file GeneralWorkerNetFramework.ActionsFile actionsFile = new GeneralWorkerNetFramework.ActionsFile(); actionsFile.UnzipFile(scriptPath, destinationFolder); // Install the node modules for each of the test projects var psiNpmRunDist = new ProcessStartInfo { FileName = "cmd.exe", RedirectStandardInput = true, }; var pNpmRunDist = Process.Start(psiNpmRunDist); Directory.GetDirectories(destinationPath).ToList().ForEach(p => { string[] packageJsonFile = Directory.GetFiles(p, "package.json"); if (packageJsonFile.Length == 1) { pNpmRunDist.StandardInput.WriteLine(Path.GetPathRoot(p).Replace(@"\", "")); pNpmRunDist.StandardInput.WriteLine(string.Format("cd {0}", p)); pNpmRunDist.StandardInput.WriteLine("npm i"); } }); pNpmRunDist.StandardInput.WriteLine("npx cypress run test " + tipoPrueba.Parametros); pNpmRunDist.WaitForExit(); tipoPruebaController.InsertEjecucionTipoPrueba(strategy.Estrategia_ID, strategy.TipoPruebas[0].ID, idExecution, "", EstadoEnum.Finalizado); } }
static void TestCypress(EstrategiaDTO estrategia) { foreach (TipoPruebaDTO tipoPrueba in estrategia.TipoPruebas) { TipoPruebaController tipoPruebaController = new TipoPruebaController(); int idExecution = tipoPruebaController.InsertEjecucionTipoPrueba(estrategia.Estrategia_ID, estrategia.TipoPruebas[0].ID, 0, ""); GeneralWorkerNetFramework.ActionsFile actionsFile = new GeneralWorkerNetFramework.ActionsFile(); var psiNpmRunDist = new ProcessStartInfo { FileName = "cmd", RedirectStandardInput = true, //WorkingDirectory = guiProjectDirectory }; var pNpmRunDist = Process.Start(psiNpmRunDist); pNpmRunDist.StandardInput.WriteLine("cd C:\\Windows\\System32\\cmd.exe"); //Traer y copiar el archivo script al sitio donde están los scripts string rutaAbsoluta = "C:\\Users\\Sistemas\\source\\repos\\VulkanoPruebasAutomatizadas-Front\\VulkanoPruebasAutomatizadas-Front\\wwwroot"; //string rutaAbsoluta = "D:\\Takezo316\\GitHub\\VulkanoPruebasAutomatizadas-Front\\VulkanoPruebasAutomatizadas-Front\\wwwroot\\uploads"; Directory.SetCurrentDirectory(@"C:\vulkanotest"); string cypath = Path.GetFullPath(@"C:"); string rutaScript = string.Concat(rutaAbsoluta, estrategia.TipoPruebas.First().Script.Script); string rutaDestino = string.Concat(cypath, "\\", estrategia.TipoPruebas.First().Script.ID); if (!Directory.Exists(rutaDestino)) { Directory.CreateDirectory(rutaDestino); } //rutaDestino= string.Concat("C:\\Users\\Sistemas\\Pruebas automatizadas\\E2E\\E2E\\cypress\\integration", estrategia.TipoPruebas.First().Script.Script); rutaDestino = string.Concat(cypath, estrategia.TipoPruebas.First().Script.Script); string filename = Path.GetFileNameWithoutExtension(rutaDestino); File.Copy(rutaScript, rutaDestino, true); actionsFile.UnzipFile(rutaScript, string.Concat(cypath, "\\", estrategia.TipoPruebas.First().Script.ID, "\\")); pNpmRunDist.StandardInput.WriteLine(string.Concat("cd ", cypath, "\\", estrategia.TipoPruebas.First().Script.ID, "\\", filename)); pNpmRunDist.StandardInput.WriteLine("npm i"); pNpmRunDist.StandardInput.WriteLine("npx cypress run ."); pNpmRunDist.WaitForExit(); tipoPruebaController.InsertEjecucionTipoPrueba(estrategia.Estrategia_ID, estrategia.TipoPruebas[0].ID, idExecution, ""); } }