Comments (7)
Another thing to consider: currently, many users write their tests sharing a page per describe
and using it
to do some steps. Since we insist on test isolation, it would be nice to have some kind of "test steps" that could be reported back to the test runner, especially when I am focusing on the test or suite.
from playwright-test.
Has any thought been given to an automatic log of commands performed by Playwright? I implemented this in a project. It's modeled after Cypress's in-browser command log. The dots are yellow while pending and then green on success or red on failure.
https://share.getcloudapp.com/OAubBAbv
My current implementation is a bit hacky (see microsoft/playwright#1654), but I'm curious what you think of this general idea.
from playwright-test.
@celeryclub Yep, we are thinking about this. The new Logger
api in Playwright should be able to provide such a log, and test runner will be able to consume it.
from playwright-test.
jestjs/jest#9819 is working on this.
from playwright-test.
Another thing to consider: currently, many users write their tests sharing a page per
describe
and usingit
to do some steps. Since we insist on test isolation, it would be nice to have some kind of "test steps" that could be reported back to the test runner, especially when I am focusing on the test or suite.
Interesting! step
alongside it
! I like it. We'd report each step as its own test case to jest, and guarantee that they run serially with the same state.
from playwright-test.
steps('should work', ({page}) => {
step('setup the page', async() => {
await page.goto('https://joel.tools/')
});
step('click the button', async() => {
await page.click('button');
expect(await page.evaluate('clicked')).toBe(true);
});
step('click the other button button', async() => {
await page.click('other-button');
expect(await page.evaluate('otherClicked')).toBe(true);
});
});
it('should work', ({page}) => {
await step('setup the page', async() => {
await page.goto('https://joel.tools/')
});
await step('click the button', async() => {
await page.click('button');
expect(await page.evaluate('clicked')).toBe(true);
});
await step('click the other button button', async() => {
await page.click('other-button');
expect(await page.evaluate('otherClicked')).toBe(true);
});
});
it('should work', ({page}) => {
step('setup the page');
await page.goto('https://joel.tools/')
step('click the button');
await page.click('button');
expect(await page.evaluate('clicked')).toBe(true);
step('click the other button button');
await page.click('other-button');
expect(await page.evaluate('otherClicked')).toBe(true);
});
Which do you like?
from playwright-test.
The last one. However, it would probably be it('should work', ({page, step}) => {...})
from playwright-test.
Related Issues (20)
- How to reference types? HOT 2
- No more fixtures mentioned in README, no more baseFolio HOT 4
- Documentation: Custom Fixtures to Support POMs HOT 10
- Error: Configuration file not found. Either pass --config, or create folio.config.(js|ts) file HOT 2
- Bug(?): Webkit support on Ubuntu HOT 3
- Issue when creating tests at runtime
- PlaywrightEnv subclasses HOT 1
- Release notes/changelog? HOT 1
- Add example how to use it with device emulation HOT 1
- When there are failed tests test execution process as a whole is marked as failed with status 1 HOT 1
- screenshot not working while setting up options HOT 1
- Add option to set devtools flag to true HOT 1
- Support proxy in param HOT 14
- npx folio --help first reads files HOT 2
- Support for specific Browser flavour HOT 1
- 0.1110.0 has breaking changes with no migration guide? HOT 2
- browser.newContext: options.isMobile is not supported in Firefox HOT 1
- Target Closed HOT 1
- QUESTION: Is there any roadmap for 1.0 playwright-test release? HOT 2
- The "it is not a function" error HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from playwright-test.