-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Closed
Labels
Description
Describe the bug
I’ve started exprimenting with Vitest and got all tests to pass individually; however, running npx vitest run . (or any set of test files together like npx vitest run src/*.test.js) crashes with the following error:
RUN /home/phil/dev/packages/vue-accessible-color-picker
node:internal/process/promises:265
triggerUncaughtException(err, true /* fromPromise */);
^
Error: Module did not self-register: '/home/phil/dev/packages/vue-accessible-color-picker/node_modules/canvas/build/Release/canvas.node'.
at Object.Module._extensions..node (node:internal/modules/cjs/loader:1185:18)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/home/phil/dev/packages/vue-accessible-color-picker/node_modules/canvas/lib/bindings.js:3:18)
at Module._compile (node:internal/modules/cjs/loader:1103:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1155:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
I’ve removed the node_modules directory contents several times, re-installed the dependencies, and the issue still happens. I’m writing this only because that’s the only tangible workaround I found for this problem.
Reproduction
git clone https://github.com/kleinfreund/vue-accessible-color-picker.git
cd vue-accessible-color-picker
npm install
npm test
# or
npx vitest run .
Expected behavior:
Test suite runs with all tests passing.
Actual behavior:
Vitest crashes and no tests are run.
Workaround: turn off threads
In #740 (comment), a workaround was presented. Turning off threads stops the issue from happening. Using the following configuration, the tests start working:
/// <reference types="vitest" />
import { defineConfig } from 'vite'
import Vue from '@vitejs/plugin-vue'
export default defineConfig({
plugins: [
Vue(),
],
test: {
threads: false,
environment: 'jsdom',
},
})Notes
- Related issues:
- Canvas not being supported in happy-dom: Add support for Canvas capricorn86/happy-dom#241
System Info
System:
OS: Linux 5.13 Ubuntu 20.04.3 LTS (Focal Fossa)
Container: Yes
Shell: 5.8 - /usr/bin/zsh
Binaries:
Node: 16.14.0 - /usr/bin/node
Yarn: 1.22.5 - ~/.yarn/bin/yarn
npm: 8.5.0 - ~/dev/packages/vue-accessible-color-picker/node_modules/.bin/npm
npmPackages:
@vitejs/plugin-vue: ^2.2.0 => 2.2.0
vite: ^2.8.1 => 2.8.1
vitest: ^0.3.4 => 0.3.4Used Package Manager
npm
Validations
- Follow our Code of Conduct
- Read the Contributing Guidelines.
- Read the docs.
- Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
- Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
- The provided reproduction is a minimal reproducible example of the bug.
Reactions are currently unavailable