TypeError: Failed to resolve module specifier "@open-wc/testing". Relative references must start with either "/", "./", or "../"
TypeError: Failed to resolve module specifier "@open-wc/testing". Relative references must start with either "/", "./", or "../"
我正在尝试找到一些对我的 vanilla webcomponents 进行单元测试的好方法,我正在尝试这种方法 open-wc 但我遇到了上述错误
我的组件-test.js
import {
html,
fixture,
expect,
} from '@open-wc/testing';
import { MyComponent } from "../src/my-component.js";
describe("simple test", () => {
it("test", async () => {
const el = await fixture("<my-component></my-component>");
expect(el.success).to.be.false;
});
});
来自package.json
的相关部分
"scripts": {
"test": "karma start",
...
},
"devDependencies": {
"@open-wc/testing": "^1.0.14",
"@webcomponents/webcomponentsjs": "^2.2.0",
"babel-eslint": "^10.0.2",
"es-dev-server": "^1.6.3",
"eslint": "^6.0.1",
"eslint-config-google": "^0.13.0",
"karma": "^4.2.0",
"karma-chrome-launcher": "^3.0.0",
"karma-jasmine": "^2.0.1",
"karma-script-launcher": "^1.0.0",
"karma-spec-reporter": "0.0.32",
"prettier": "1.18.2",
"wct-browser-legacy": "^1.0.2",
"web-component-tester": "^6.9.2"
},
控制台
# npm test
> basic-vanilla-webcomponent@ test C:\_d\WSs\basic-vanilla-webcomponent
> karma start
16 07 2019 18:57:51.712:INFO [karma-server]: Karma v4.2.0 server started at http://0.0.0.0:9876/
16 07 2019 18:57:51.719:INFO [launcher]: Launching browsers Chrome with concurrency unlimited
16 07 2019 18:57:51.730:INFO [launcher]: Starting browser Chrome
16 07 2019 18:57:54.850:INFO [Chrome 75.0.3770 (Windows 10.0.0)]: Connected on socket Hf1IzCLlm_IaBeZXAAAA with id 12297274
Chrome 75.0.3770 (Windows 10.0.0) ERROR
An error was thrown in afterAll
ReferenceError: require is not defined
at node_modules/find-port/test/findPort.test.js:1:16
ReferenceError: require is not defined
at node_modules/registry-auth-token/test/auth-token.test.js:1:10
ReferenceError: require is not defined
at node_modules/registry-auth-token/test/registry-url.test.js:1:10
ReferenceError: require is not defined
at node_modules/winston/test/transports/00-file-stress.test.js:11:12
ReferenceError: require is not defined
at node_modules/winston/test/transports/01-file-maxsize.test.js:8:16
ReferenceError: require is not defined
at node_modules/winston/test/transports/console.test.js:11:14
ReferenceError: require is not defined
at node_modules/winston/test/transports/file-archive.test.js:10:16
ReferenceError: require is not defined
at node_modules/winston/test/transports/file-tailrolling.test.js:2:16
ReferenceError: require is not defined
at node_modules/winston/test/transports/file.test.js:3:14
ReferenceError: require is not defined
at node_modules/winston/test/transports/http.test.js:7:12
ReferenceError: require is not defined
at node_modules/winston/test/transports/stream.test.js:3:14
TypeError: Failed to resolve module specifier "@open-wc/testing". Relative references must start with either "/", "./", or "../".
Chrome 75.0.3770 (Windows 10.0.0): Executed 0 of 0 ERROR (0.02 secs / 0 secs)
npm ERR! Test failed. See above for more details.
已检查版本
# npm list @open-wc/testing
basic-vanilla-webcomponent@ C:\_d\WSs\basic-vanilla-webcomponent
`-- @open-wc/testing@1.0.14
*** 编辑于 2019 年 7 月 22 日
我通过将整个写入路径来更改导入 (import { html, fixture, expect } from "C:/_d/WSs/basic-vanilla-webcomponent/node_modules/@open-wc/testing";) 然后我得到了这个没有多大帮助的错误:
如果 @open-wc
在主 public 文件夹中,您应该尝试添加 ./
:
import {
html,
fixture,
expect,
} from './@open-wc/testing';
我遇到了同样的问题,但是在 src
文件夹中指向 tests
没有任何错误。例如
这会给出与您相同的错误
{
pattern: 'test/**/*.test.js',
type: 'module'
}
但这很好用
{
pattern: 'src/**/*.test.js',
type: 'module'
}
我也遇到过类似的问题,不过我的解决方法是在karma.conf.js
中添加如下代码:
esm: {
nodeResolve: true,
},
我正在尝试找到一些对我的 vanilla webcomponents 进行单元测试的好方法,我正在尝试这种方法 open-wc 但我遇到了上述错误
我的组件-test.js
import {
html,
fixture,
expect,
} from '@open-wc/testing';
import { MyComponent } from "../src/my-component.js";
describe("simple test", () => {
it("test", async () => {
const el = await fixture("<my-component></my-component>");
expect(el.success).to.be.false;
});
});
来自package.json
的相关部分 "scripts": {
"test": "karma start",
...
},
"devDependencies": {
"@open-wc/testing": "^1.0.14",
"@webcomponents/webcomponentsjs": "^2.2.0",
"babel-eslint": "^10.0.2",
"es-dev-server": "^1.6.3",
"eslint": "^6.0.1",
"eslint-config-google": "^0.13.0",
"karma": "^4.2.0",
"karma-chrome-launcher": "^3.0.0",
"karma-jasmine": "^2.0.1",
"karma-script-launcher": "^1.0.0",
"karma-spec-reporter": "0.0.32",
"prettier": "1.18.2",
"wct-browser-legacy": "^1.0.2",
"web-component-tester": "^6.9.2"
},
控制台
# npm test
> basic-vanilla-webcomponent@ test C:\_d\WSs\basic-vanilla-webcomponent
> karma start
16 07 2019 18:57:51.712:INFO [karma-server]: Karma v4.2.0 server started at http://0.0.0.0:9876/
16 07 2019 18:57:51.719:INFO [launcher]: Launching browsers Chrome with concurrency unlimited
16 07 2019 18:57:51.730:INFO [launcher]: Starting browser Chrome
16 07 2019 18:57:54.850:INFO [Chrome 75.0.3770 (Windows 10.0.0)]: Connected on socket Hf1IzCLlm_IaBeZXAAAA with id 12297274
Chrome 75.0.3770 (Windows 10.0.0) ERROR
An error was thrown in afterAll
ReferenceError: require is not defined
at node_modules/find-port/test/findPort.test.js:1:16
ReferenceError: require is not defined
at node_modules/registry-auth-token/test/auth-token.test.js:1:10
ReferenceError: require is not defined
at node_modules/registry-auth-token/test/registry-url.test.js:1:10
ReferenceError: require is not defined
at node_modules/winston/test/transports/00-file-stress.test.js:11:12
ReferenceError: require is not defined
at node_modules/winston/test/transports/01-file-maxsize.test.js:8:16
ReferenceError: require is not defined
at node_modules/winston/test/transports/console.test.js:11:14
ReferenceError: require is not defined
at node_modules/winston/test/transports/file-archive.test.js:10:16
ReferenceError: require is not defined
at node_modules/winston/test/transports/file-tailrolling.test.js:2:16
ReferenceError: require is not defined
at node_modules/winston/test/transports/file.test.js:3:14
ReferenceError: require is not defined
at node_modules/winston/test/transports/http.test.js:7:12
ReferenceError: require is not defined
at node_modules/winston/test/transports/stream.test.js:3:14
TypeError: Failed to resolve module specifier "@open-wc/testing". Relative references must start with either "/", "./", or "../".
Chrome 75.0.3770 (Windows 10.0.0): Executed 0 of 0 ERROR (0.02 secs / 0 secs)
npm ERR! Test failed. See above for more details.
已检查版本
# npm list @open-wc/testing
basic-vanilla-webcomponent@ C:\_d\WSs\basic-vanilla-webcomponent
`-- @open-wc/testing@1.0.14
*** 编辑于 2019 年 7 月 22 日
我通过将整个写入路径来更改导入 (import { html, fixture, expect } from "C:/_d/WSs/basic-vanilla-webcomponent/node_modules/@open-wc/testing";) 然后我得到了这个没有多大帮助的错误:
如果 @open-wc
在主 public 文件夹中,您应该尝试添加 ./
:
import {
html,
fixture,
expect,
} from './@open-wc/testing';
我遇到了同样的问题,但是在 src
文件夹中指向 tests
没有任何错误。例如
这会给出与您相同的错误
{
pattern: 'test/**/*.test.js',
type: 'module'
}
但这很好用
{
pattern: 'src/**/*.test.js',
type: 'module'
}
我也遇到过类似的问题,不过我的解决方法是在karma.conf.js
中添加如下代码:
esm: {
nodeResolve: true,
},