No PlaywrightTestConfig definimos um valor personalizado na seção de uso, ou seja
export default defineConfig {
use: {
myKey: 'myvalue'
}
}
Este valor pode ser substituído nos testes e eu quero fazer com que o nome do snapshot inclua o valor de myKey sem que a pessoa que escreve o teste tenha que adicionar o nome do snapshot, ou seja, seja escolhido por padrão como se estivesse definido no snapshotPathTemplate dentro da configuração do projeto. Então, um arquivo de teste chamado example.test.ts
com test called my test
that does expect(page).toHaveScreenshot()
geraria um nome de arquivo de snapshot algo como {testFileName}/{testFileDir}-{myKey}-{projectName}-{platform}.png
( example.test.ts-snapshots/my-test-myvalue-chromium-darwin.png
)
Nota: Não quero ter um projeto separado para cada combinação, pois isso acabaria sendo muitas combinações
O Playwright
snapshotPathTemplate
provavelmente deve te levar até a maior parte do caminho. O tl;dr é que o Playwright fornece um conjunto de tokens que você pode usar para gerar seu caminho de snapshot automaticamente, e você pode fornecer adicionalmente sua chave para o modelo de string.Optei por usar
process.env
para obter minha chave personalizada, mas qualquer maneira que você achar adequada para inserir sua chave no snapshotPathTemplate deve ser suficiente.Executar o comando acima com um teste gerará um arquivo com algo como:
.../myFileName.spec.ts/mySpecFolderName-myKeyValue-chromium-darwin.png