mirror of
https://github.com/google/comprehensive-rust.git
synced 2025-03-20 22:36:03 +02:00
This is a first draft for a test framework for testing the JS part of the book that is discussed in #2462 It is using [webdriverIO](https://webdriver.io/) and the webdriverIO [Expect API](https://webdriver.io/docs/api/expect-webdriverio/) in combination with [Mocha](https://mochajs.org/). WebdriverIO is taking care of accessing the webpage with a real browser and can access the state of the page so behavior can be asserted. Currently only a small test for the speaker-notes implementation demos the functionality. The [Static Server Service](https://webdriver.io/docs/static-server-service/) is used to serve the book in a way that the test runner can access it. A CI integration can look like https://webdriver.io/docs/githubactions/ and is implemented with a headless setup. In CI it uses the language variable to set environment variable that configures where the built book should be mounted from --------- Co-authored-by: Martin Geisler <martin@geisler.net>
21 lines
1.0 KiB
Markdown
21 lines
1.0 KiB
Markdown
# Testing Comprehensive Rust
|
|
|
|
The course material contains JS code that can break and needs to be checked for
|
|
functionality. Examples are `theme/speaker-notes.js` or `theme/book.js`.
|
|
|
|
Comprehensive Rust is using [webdriverIO](https://webdriver.io/) and the
|
|
[webdriverIO Expect API](https://webdriver.io/docs/api/expect-webdriverio/) in
|
|
combination with [Mocha] (https://mochajs.org/). WebdriverIO is taking care of
|
|
accessing the webpage with a real browser and can access the state of the page
|
|
so behavior can be asserted.
|
|
|
|
The [Static Server Service](https://webdriver.io/docs/static-server-service/) is
|
|
used mainly in the [CI](../github/workflows/build.yml) to serve the book on port
|
|
`localhost:8080` such that the test runner can access it. This mode is used when
|
|
`npm start` or `npm test` is executed.
|
|
|
|
For local testing and quick iterations it is possible to use `mdbook serve`
|
|
which creates a small HTTP server on port 3000 by default. There is a special
|
|
config that is invoked with `npm run test-mdbook` that uses
|
|
`http://localhost:3000`
|