blob: bf03db2e61988452e2e2db90571bc11fff9a8847 [file] [log] [blame] [view]
# Install ZAP from Source on Windows
## Windows-specific Prerequisite Settings
### 1. Windows Powershell:
In desktop search bar, input `Windows Powershell` and run as administrator. Run all the following commands inside Powershell.
### 2. Chocolatey:
Install from https://chocolatey.org/install
Check if installed properly:
```
choco -v
```
Install pkgconfiglite package:
```
choco install pkgconfiglite
```
### 3. Install Node if you have not:
```
choco install nodejs-lts
```
\*the version has to be 18 to pass version check test, after install, check with `node -v`
\*if you install Node already, and fail some tests similar to `cannot find Node`, reinstall Node with chocolatey again
### 4. Follow the instruction page for other installation details
https://github.com/project-chip/zap/blob/master/docs/development-instructions.md
## Fix Possible Error
### 1. sqlite3
When running ZAP (eg. `npm run zap`), if you see an error about `sqlite3.node` in a pop up window, run:
```
npm rebuild sqlite3
```
### 2. electron-builder:
When doing npm install, in post-install, if there is an error on the following command, related to `electron-builder install-app-deps`, `npx electron-rebuild canvas failed` or `node-pre-gyp`, it is because the current `canvas` version is not compatible with Windows, and the installation error will not cause a failure in running ZAP. node-canvas is working on the solution now and the issue will be solved in near future.
```
"postinstall": "electron-builder install-app-deps && husky install && npm rebuild canvas --update-binary && npm run version-stamp"
```
## Fix Failed Tests
### 1. Exceed Timeout
If 'npm run test' fails due to `Exceeded timeout of 1500 ms for a test. Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test.`, set the following environment variables to increase timeouts for all tests.
```
$env:ZAP_TEST_TIMEOUT = 50000000; $env:ZAP_TEST_TIMEOUT_SHORT = 50000000; $env:ZAP_TEST_TIMEOUT_MEDIUM = 50000000; $env:ZAP_TEST_TIMEOUT_LONG = 50000000
```
### 2. Test Suite failed to run (Canvas not found)
If 'npm run test' fails due to `Test suite failed to run. Cannot find module '../build/Release/canvas.node'` or `\zap\node_modules\canvas\build\Release\canvas.node is not a valid Win32 application.`, rebuild canvas:
```
npm rebuild canvas --update-binary
```
### 3. get index.html or other server issue
If `npm run test` fails due to `get index.html request failed with status code 404` in unit tests or having server connection issues in e2e-ci tests, run:
```
npm run build
```
### 4. Other
Check if node version is v20, and try to install it with Chocolatey
Also, you can check the faq doc for other known issues: https://github.com/project-chip/zap/blob/master/docs/faq.md