46 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
# Running the end-to-end tests on Windows
 | 
						|
 | 
						|
Windows is not the best platform to run the tests on, but if you have to, enable Windows Subsystem for Linux (WSL)
 | 
						|
and start following these steps to get going:
 | 
						|
 | 
						|
1. Navigate to your working directory (`cd /mnt/c/users/travisr/whatever/matrix-react-sdk` for example).
 | 
						|
2. Run `sudo apt-get install unzip python3 virtualenv dos2unix`
 | 
						|
3. Run `dos2unix ./test/end-to-end-tests/*.sh ./test/end-to-end-tests/synapse/*.sh ./test/end-to-end-tests/element/*.sh`
 | 
						|
4. Install NodeJS for ubuntu:
 | 
						|
   ```bash
 | 
						|
   curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
 | 
						|
   sudo apt-get update
 | 
						|
   sudo apt-get install nodejs
 | 
						|
   ```
 | 
						|
5. Run `yarn link` and `yarn install` for all layers from WSL if you haven't already. If you want to switch back to
 | 
						|
   your Windows host after your tests then you'll need to re-run `yarn install` (and possibly `yarn link`) there too.
 | 
						|
   Though, do note that you can access `http://localhost:8080` in your Windows-based browser when running webpack in
 | 
						|
   the WSL environment (it does *not* work the other way around, annoyingly).
 | 
						|
6. In WSL, run `yarn start` at the element-web layer to get things going.
 | 
						|
7. While that builds... Run:
 | 
						|
   ```bash
 | 
						|
   sudo apt-get install x11-apps
 | 
						|
   wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
 | 
						|
   sudo dpkg -i google-chrome-stable_current_amd64.deb
 | 
						|
   sudo apt -f install
 | 
						|
   ```
 | 
						|
8. Run:
 | 
						|
   ```bash
 | 
						|
   cd ./test/end-to-end-tests
 | 
						|
   ./synapse/install.sh
 | 
						|
   ./install.sh
 | 
						|
   ./run.sh --app-url http://localhost:8080 --log-directory ./logs
 | 
						|
   ```
 | 
						|
 | 
						|
Note that using `yarn test:e2e` probably won't work for you. You might also have to use the config.json from the
 | 
						|
`element/config-template` directory in order to actually succeed at the tests.
 | 
						|
 | 
						|
Also note that you'll have to use `--no-sandbox` otherwise Chrome will complain that there's no sandbox available. You
 | 
						|
could probably fix this with enough effort, or you could run a headless Chrome in the WSL container without a sandbox.
 | 
						|
 | 
						|
 | 
						|
Reference material that isn't fully represented in the steps above (but snippets have been borrowed):
 | 
						|
* https://virtualizationreview.com/articles/2017/02/08/graphical-programs-on-windows-subsystem-on-linux.aspx
 | 
						|
* https://gist.github.com/drexler/d70ab957f964dbef1153d46bd853c775
 | 
						|
* https://docs.microsoft.com/en-us/windows/wsl/networking#accessing-windows-networking-apps-from-linux-host-ip
 |