Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(DENO - VITEST) : Error running: deno -A --node-modules-dir npm:vitest #19767

Closed
llllOllOOll opened this issue Jul 8, 2023 · 1 comment
Closed
Labels
bug Something isn't working correctly node API polyfill Related to various "node:*" modules APIs node compat

Comments

@llllOllOOll
Copy link

Linux config:

$ lsb_release -a

Distributor ID: NixOS
Description: NixOS 23.11 (Tapir)
Release: 23.11
Codename: tapir

$ deno --version
deno 1.35.0 (release, x86_64-unknown-linux-gnu)
v8 11.6.189.7
typescript 5.1.6

$ node --version
v18.16.1

$ npm --version
9.5.1


package.json

{
"name": "@deno/my-example-project",
"description": "An example app created with Deno",
"type": "module",
"scripts": {
"test": "deno run -A --node-modules-dir npm:vitest"
},
"devDependencies": {
"vitest": "^0.33.0"
}
}


vitest.config.ts

import { defineConfig } from "vitest/config";

export default defineConfig({
test: {
// ...
},
});

#basic.test.ts
import { describe, expect, test } from "vitest";

test("test", () => {
expect(true).toBe(true);
});


$ deno run -A --node-modules-dir npm:vitest

I get the error:

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Unhandled Errors ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯

Vitest caught 1 unhandled error during the test run.
This might cause false positive tests. Resolve unhandled errors to make sure your tests are not affected.
error: Uncaught (in worker "$DENO_STD_NODE_WORKER_THREAD") TypeError: tinypoolData is not iterable
at file:///home/seven/files/developer/repos/Deno/deno-npm/node_modules/.deno/vitest@0.33.0/node_modules/tinypool/dist/esm/worker.js:27:41

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Unhandled Error ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
TypeError: this.port.on is not a function
❯ new WorkerInfo node_modules/.deno/vitest@0.33.0/node_modules/tinypool/dist/esm/index.js:382:15
❯ ThreadPool._addNewWorker node_modules/.deno/vitest@0.33.0/node_modules/tinypool/dist/esm/index.js:562:24
❯ ThreadPool._ensureMinimumWorkers node_modules/.deno/vitest@0.33.0/node_modules/tinypool/dist/esm/index.js:520:12
❯ new ThreadPool node_modules/.deno/vitest@0.33.0/node_modules/tinypool/dist/esm/index.js:505:10
❯ new Tinypool node_modules/.deno/vitest@0.33.0/node_modules/tinypool/dist/esm/index.js:780:31
❯ createThreadsPool node_modules/.deno/vitest@0.33.0/node_modules/vitest/dist/vendor-cli-api.bf4b62a8.js:7301:16
❯ node_modules/.deno/vitest@0.33.0/node_modules/vitest/dist/vendor-cli-api.bf4b62a8.js:7530:43
❯ Object.runTests node_modules/.deno/vitest@0.33.0/node_modules/vitest/dist/vendor-cli-api.bf4b62a8.js:7522:51
❯ node_modules/.deno/vitest@0.33.0/node_modules/vitest/dist/vendor-cli-api.bf4b62a8.js:13930:25

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: {
"__callSiteEvals": [
{
"columnNumber": 15,
"evalOrigin": undefined,
"fileName": "file:///home/seven/files/developer/repos/Deno/deno-npm/node_modules/.deno/vitest@0.33.0/node_modules/tinypool/dist/esm/index.js",
"function": undefined,
"functionName": "WorkerInfo",
"isAsync": false,
"isConstructor": true,
"isEval": false,
"isNative": false,
"isPromiseAll": false,
"isToplevel": true,
"lineNumber": 382,
"methodName": null,
"promiseIndex": null,
"this": undefined,
"typeName": null,
},
{
"columnNumber": 24,
"evalOrigin": undefined,
"fileName": "file:///home/seven/files/developer/repos/Deno/deno-npm/node_modules/.deno/vitest@0.33.0/node_modules/tinypool/dist/esm/index.js",
"function": undefined,
"functionName": "_addNewWorker",
"isAsync": false,
"isConstructor": false,
"isEval": false,
"isNative": false,
"isPromiseAll": false,
"isToplevel": false,
"lineNumber": 562,
"methodName": "_addNewWorker",
"promiseIndex": null,
"this": undefined,
"typeName": "ThreadPool",
},
{
"columnNumber": 12,
"evalOrigin": undefined,
"fileName": "file:///home/seven/files/developer/repos/Deno/deno-npm/node_modules/.deno/vitest@0.33.0/node_modules/tinypool/dist/esm/index.js",
"function": undefined,
"functionName": "_ensureMinimumWorkers",
"isAsync": false,
"isConstructor": false,
"isEval": false,
"isNative": false,
"isPromiseAll": false,
"isToplevel": false,
"lineNumber": 520,
"methodName": "_ensureMinimumWorkers",
"promiseIndex": null,
"this": undefined,
"typeName": "ThreadPool",
},
{
"columnNumber": 10,
"evalOrigin": undefined,
"fileName": "file:///home/seven/files/developer/repos/Deno/deno-npm/node_modules/.deno/vitest@0.33.0/node_modules/tinypool/dist/esm/index.js",
"function": undefined,
"functionName": "ThreadPool",
"isAsync": false,
"isConstructor": true,
"isEval": false,
"isNative": false,
"isPromiseAll": false,
"isToplevel": false,
"lineNumber": 505,
"methodName": null,
"promiseIndex": null,
"this": undefined,
"typeName": null,
},
{
"columnNumber": 31,
"evalOrigin": undefined,
"fileName": "file:///home/seven/files/developer/repos/Deno/deno-npm/node_modules/.deno/vitest@0.33.0/node_modules/tinypool/dist/esm/index.js",
"function": undefined,
"functionName": "Tinypool",
"isAsync": false,
"isConstructor": true,
"isEval": false,
"isNative": false,
"isPromiseAll": false,
"isToplevel": false,
"lineNumber": 780,
"methodName": null,
"promiseIndex": null,
"this": undefined,
"typeName": null,
},
{
"columnNumber": 16,
"evalOrigin": undefined,
"fileName": "file:///home/seven/files/developer/repos/Deno/deno-npm/node_modules/.deno/vitest@0.33.0/node_modules/vitest/dist/vendor-cli-api.bf4b62a8.js",
"function": undefined,
"functionName": "createThreadsPool",
"isAsync": false,
"isConstructor": false,
"isEval": false,
"isNative": false,
"isPromiseAll": false,
"isToplevel": true,
"lineNumber": 7301,
"methodName": null,
"promiseIndex": null,
"this": undefined,
"typeName": null,
},
{
"columnNumber": 43,
"evalOrigin": undefined,
"fileName": "file:///home/seven/files/developer/repos/Deno/deno-npm/node_modules/.deno/vitest@0.33.0/node_modules/vitest/dist/vendor-cli-api.bf4b62a8.js",
"function": undefined,
"functionName": null,
"isAsync": false,
"isConstructor": false,
"isEval": false,
"isNative": false,
"isPromiseAll": false,
"isToplevel": true,
"lineNumber": 7530,
"methodName": null,
"promiseIndex": null,
"this": undefined,
"typeName": null,
},
{
"columnNumber": null,
"evalOrigin": undefined,
"fileName": null,
"function": undefined,
"functionName": "map",
"isAsync": false,
"isConstructor": false,
"isEval": false,
"isNative": false,
"isPromiseAll": false,
"isToplevel": false,
"lineNumber": null,
"methodName": "map",
"promiseIndex": null,
"this": undefined,
"typeName": "Array",
},
{
"columnNumber": 51,
"evalOrigin": undefined,
"fileName": "file:///home/seven/files/developer/repos/Deno/deno-npm/node_modules/.deno/vitest@0.33.0/node_modules/vitest/dist/vendor-cli-api.bf4b62a8.js",
"function": undefined,
"functionName": "runTests",
"isAsync": false,
"isConstructor": false,
"isEval": false,
"isNative": false,
"isPromiseAll": false,
"isToplevel": false,
"lineNumber": 7522,
"methodName": "runTests",
"promiseIndex": null,
"this": undefined,
"typeName": "Object",
},
{
"columnNumber": 25,
"evalOrigin": undefined,
"fileName": "file:///home/seven/files/developer/repos/Deno/deno-npm/node_modules/.deno/vitest@0.33.0/node_modules/vitest/dist/vendor-cli-api.bf4b62a8.js",
"function": undefined,
"functionName": null,
"isAsync": false,
"isConstructor": false,
"isEval": false,
"isNative": false,
"isPromiseAll": false,
"isToplevel": true,
"lineNumber": 13930,
"methodName": null,
"promiseIndex": null,
"this": undefined,
"typeName": null,
},
],
}
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯

Test Files no tests
Tests no tests
Errors 1 error
Start at 12:34:28
Duration 34ms (transform 0ms, setup 0ms, collect 0ms, tests 0ms, environment 0ms, prepare 0ms)

FAIL Tests failed. Watching for file changes...
press h to show help, press q to quit
error: Uncaught Error: Unhandled error. ('Uncaught TypeError: tinypoolData is not iterable')
at _Worker.emit (ext:deno_node/_events.mjs:370:17)
at Worker. (node:worker_threads:97:56)
at innerInvokeEventListeners (ext:deno_web/02_event.js:792:7)
at invokeEventListeners (ext:deno_web/02_event.js:839:5)
at dispatch (ext:deno_web/02_event.js:696:9)
at Worker.dispatchEvent (ext:deno_web/02_event.js:1101:12)
at Worker.#handleError (ext:runtime/11_workers.js:132:10)
at Worker.#pollControl (ext:runtime/11_workers.js:157:33)
at eventLoopTick (ext:core/01_core.js:183:11)
repos/Deno/deno-npm


I have tried multiple approaches to run vitest with Deno, but I consistently encounter the same error. I don't face any issues with other npm modules.

I hope someone has already succeeded in running vitest with Deno.

I understand that Deno.test fulfills almost all testing requirements, but I would like to have the flexibility to use another testing tool, specifically vitest, which I already use in other Node.js projects.

@bartlomieju bartlomieju added bug Something isn't working correctly node compat labels Jul 9, 2023
@bartlomieju bartlomieju added the node API polyfill Related to various "node:*" modules APIs label Mar 4, 2024
@marvinhagemeister
Copy link
Contributor

Resolved by #22999

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working correctly node API polyfill Related to various "node:*" modules APIs node compat
Projects
None yet
Development

No branches or pull requests

3 participants