microsoft / playwright-test

Build a cross-browser end-to-end test suite with Playwright.
https://playwright.dev
Apache License 2.0
777 stars 34 forks source link

fix: properly depend on the stable test runner #96

Closed JoelEinbinder closed 4 years ago

JoelEinbinder commented 4 years ago

Having the test-runner depend on the stable version of itself was not working properly. It broke typechecking, and the playwright-runner package was incorrectly depending on the stable version of the runner. This adds a stable-test-runner folder where the version of the test runner on npm is installed as normal. Then it is linked to via a file install.

The version mismatch between the two packages was also breaking things. I updated it to 0.3.5 and added a lint to make sure they don't get out of sync.

JoelEinbinder commented 4 years ago

Previously we tried to solve it on the bots by manually linking the packages so that they can depend itself on each other. The drawback of that was that the versions needed to be in sync all the time and the developer experience was also not that great with yarn link everywhere (root dir and test-runner dir) (if you did forget it, it caused trouble).

You shouldn't be running yarn link to set this up. Just yarn and it will work. Is something broken?

mxschmitt commented 4 years ago

Previously we tried to solve it on the bots by manually linking the packages so that they can depend itself on each other. The drawback of that was that the versions needed to be in sync all the time and the developer experience was also not that great with yarn link everywhere (root dir and test-runner dir) (if you did forget it, it caused trouble).

You shouldn't be running yarn link to set this up. Just yarn and it will work. Is something broken?

Yeah a week ago we used on the tot version on the bots which lead to issues locally since the bot runner version and the local version was different. Was reverted again 5c6fd438f665b15b632c61689789b3da51907bfb.

JoelEinbinder commented 4 years ago

Yep, there's no way to use the local versions on the bots until the api stabilizes. This uses the stable version everywhere.