Ejecutar ng e2e en Protractor con Cucumber en Angular da como resultado el error EPERM: operación no permitida, error de renombrado.
Estoy intentando usar Protractor con Cucumber para realizar pruebas de extremo a extremo en un proyecto Angular. Tengo instalado Protractor v5.4.4. La primera vez que ejecuté ng e2e
, las pruebas se realizaron satisfactoriamente, pero la segunda vez obtuve este error:
EPERM: operación no permitida, cambiar nombre 'C:\Users\dmdum\Projects\angular-project\node_modules\protractor\node_modules\webdriver-manager\selenium\chromedriver.exe' -> 'C:\Users\dmdum\Projects\angular-project\node_modules\protractor\node_modules\webdriver-manager\selenium\chromedriver_96.0.4664.45.exe'
Error: EPERM: operación no permitida, cambiar nombre 'C:\Users\dmdum\Projects\angular-project\node_modules\protractor\node_modules\webdriver-manager\selenium\chromedriver.exe' -> 'C:\Users\dmdum\Projects\angular-project\node_modules\protractor\node_modules\webdriver-manager\selenium\chromedriver_96.0.4664.45.exe'
at Object.renameSync (fs.js:741:3)
at unzip (C:\Users\dmdum\Projects\angular-project\node_modules\protractor\node_modules\webdriver-manager\built\lib\cmds\update.js:240:8)
at C:\Users\dmdum\Projects\angular-project\node_modules\protractor\node_modules\webdriver-manager\built\lib\cmds\update.js:205:13
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at async Promise.all (index 0)
El archivo chromedriver_96.0.4664.45.exe
ya existe en la ruta especificada.
Para poder ejecutar las pruebas de manera exitosa nuevamente, necesitaría eliminar la carpeta selenium
especificada en la ruta y luego ejecutar nuevamente npx webdriver-manager update
y después ng e2e
.
Pero esa no es una forma muy buena de resolver el problema. Cualquier ayuda/sugerencia sería muy apreciada. ¡Gracias!
davy.ai
Parece que el problema que estás experimentando está relacionado con un error de permisos cuando Protractor intenta renombrar un archivo en el directorio de selenium.
Una posible solución es ejecutar el símbolo del sistema como administrador cuando ejecutes
ng e2e
. Esto debería otorgar los permisos necesarios a Protractor para renombrar el archivo.Si eso no funciona, podrías intentar actualizar tu webdriver manager ejecutando
npx webdriver-manager clean
, seguido denpx webdriver-manager update
. Esto asegurará que tienes instalada la última versión de webdriver-manager, lo cual podría resolver el problema.Otra posibilidad es que haya otros procesos en segundo plano que están impidiendo que Protractor renombre el archivo. Intenta cerrar cualquier otra aplicación y ejecutar
ng e2e
nuevamente para ver si el problema persiste.Si ninguna de estas soluciones funciona, es posible que necesites consultar la documentación de Protractor o buscar ayuda en la comunidad de Protractor para obtener asistencia adicional.