Skip to content

Commit

Permalink
[browser][docs] Add docs for running outerloop and browser instance (#…
Browse files Browse the repository at this point in the history
…46737)

* [browser][docs] Add testing docs for running outerloop and browser instance

* Add information for GitHub interface.
  • Loading branch information
kjpou1 authored Jan 8, 2021
1 parent f3c6cb0 commit 6299cef
Showing 1 changed file with 59 additions and 1 deletion.
60 changes: 59 additions & 1 deletion docs/workflow/testing/libraries/testing-wasm.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Testing Libraries on WebAssembly

## Prerequisites

### Using JavaScript engines

In order to be able to run tests, the following JavaScript engines should be installed:
- V8
- JavaScriptCore
Expand All @@ -21,6 +25,16 @@ e.g. for V8
PATH=/Users/<your_user>/.jsvu/:$PATH V8
```

### Using Browser Instance
It's possible to run tests in a browser instance:

- An installation of [ChromeDriver - WebDriver for Chrome](https://chromedriver.chromium.org) is required. Make sure to read [Downloads/Version Selection](https://chromedriver.chromium.org/downloads/version-selection) to setup a working installation of ChromeDriver.
- Include the [ChromeDriver - WebDriver for Chrome](https://chromedriver.chromium.org) location in your PATH environment. Default is `/Users/<your_user>/.chromedriver`

```bash
PATH=/Users/<your_user>/.chromedriver:$PATH
```

## Building Libs and Tests for WebAssembly

Now we're ready to build everything for WebAssembly (for more details, please read [this document](../../building/libraries/webassembly-instructions.md#building-everything)):
Expand All @@ -32,12 +46,19 @@ and even run tests one by one for each library:
./build.sh libs.tests -test -os Browser -c Release
```

### Running individual test suites
### Running individual test suites using JavaScript engine
The following shows how to run tests for a specific library
```
./dotnet.sh build /t:Test src/libraries/System.AppContext/tests /p:TargetOS=Browser /p:TargetArchitecture=wasm /p:Configuration=Release
```

### Running outer loop tests using JavaScript engine

To run all tests, including "outer loop" tests (which are typically slower and in some test suites less reliable, but which are more comprehensive):
```
./dotnet.sh build /t:Test src/libraries/System.AppContext/tests /p:TargetOS=Browser /p:TargetArchitecture=wasm /p:Configuration=Release /p:Outerloop=true
```

### Running tests using different JavaScript engines
It's possible to set a JavaScript engine explicitly by adding `/p:JSEngine` property:

Expand All @@ -52,6 +73,43 @@ At the moment supported values are:

By default, `V8` engine is used.

### Running individual test suites using Browser instance

The following shows how to run tests for a specific library

- CLI
```
XHARNESS_COMMAND=test-browser ./dotnet.sh build /t:Test src/libraries/System.AppContext/tests /p:TargetOS=Browser /p:TargetArchitecture=wasm /p:Configuration=Release
```
- Makefile target `run-browser-tests-<test>`
```
make -C src/mono/wasm/ run-browser-tests-System.AppContext
```
### Running outer loop tests using Browser instance
To run all tests, including "outer loop" tests (which are typically slower and in some test suites less reliable, but which are more comprehensive):
- CLI
```
XHARNESS_COMMAND=test-browser ./dotnet.sh build /t:Test src/libraries/System.AppContext/tests /p:TargetOS=Browser /p:TargetArchitecture=wasm /p:Configuration=Release /p:Outerloop=true
```
- Makefile target `run-browser-tests-<test>`
```
MSBUILD_ARGS=/p:OuterLoop=true make -C src/mono/wasm/ run-browser-tests-System.AppContext
```
## Kicking off outer loop tests from GitHub Interface
Add the following to the comment of a PR.
```
/azp run runtime-libraries-mono outerloop
```
### Test App Design
TBD
Expand Down

0 comments on commit 6299cef

Please sign in to comment.