Novato de JS aquí, así que disculpe cualquier concepto erróneo que pueda tener sobre JS o Dramaturgo...
Tengo la configuración del archivo config.js con proyectos y para cada proyecto defino variables personalizadas (como credenciales de inicio de sesión, etc.). ¿Cómo puedo acceder a estos valores en el archivo global-setup.js cuando uso --project=ProjectName cuando ejecuto la prueba?
Puedo usar testInfo en las pruebas para acceder a estos valores, pero ¿puedo acceder a él en global-setup.js , ya que (según tengo entendido) se agrega al objeto de configuración?
Estoy tratando de usar un archivo de configuración global para iniciar sesión con credenciales de uno u otro proyecto, que se definen en el archivo config.js.
Así que ejecutaría esto: npx playwright test testFile.spec.js --project=FirstProject
El archivo playwright.config.js tendría esta configuración:
{ name: "FirstProject", username: "blahblah", password: "blahblah", }, { name: "SecondProject", username: "blahblah1", password: "blahblah1", } ] Y en global-setup.js me gustaría verificar qué proyecto se está utilizando para proporcionar las credenciales correctas, algo como esto:
module.exports = async config => { const username = config.projects[${projectName}].username; const password = config.projects[${projectName}].password;es posible?
Gracias.
La documentación del dramaturgo sugiere que cree un accesorio. Por ejemplo, un archivo llamado my-test.js al nivel de playwright.config.js :
// my-test.js const base = require('@playwright/test'); exports.test = base.test.extend({ // Define an option and provide a default value. // We can later override it in the config. person: [{username: 'john', password: 'john123'}, { option: true }], });Luego dentro de playwright.config.js :
/** * @see https://playwright.dev/docs/test-configuration * @type {import('@playwright/test').PlaywrightTestConfig<{ person: { username: string; password: string } }>} */ const config = { projects: [ { name: 'FirstProject', use: { person: {username: 'blahblah', password: 'blahblah'} }, }, { name: "SecondProject", use: { person: {username: 'blahblah1', password: 'blahblah1'} }, } ] }Finalmente, puede usar el accesorio en el archivo de especificaciones:
// testFile.spec.js const { test } = require('../my-test'); const { expect } = require('@playwright/test'); test('test 1', async ({ page, person }) => { await page.goto('https://example.com/'); await page.fill('input[name="login"]', person.username); await page.fill('input[name="password"]', person.password); });Para ejecutar la prueba, use el cli:
npx playwright test testFile.spec.js --project=FirstProjectProbé el código y funcionó para mí. Más información: