chrome 未定义 - Mocha 和 Typescript
chrome is not defined - Mocha and Typescript
我很难用 typescript
编译测试。当尝试 运行 npm test
得到
onClicked: chrome.browserAction !== undefined ? chrome.browserAction.onClicked : undefined
我的基本测试看起来像:
import Nightmare from "nightmare";
import * as chai from "chai";
const Client = require('node-rest-client').Client;
import chaiString from "chai-string";
chai.use(chaiString);
import DomainDriver from "../../app/scripts/domains/driver";
const expect: any = chai.expect;
测试配置如下:
{
...
"test": "mocha --recursive --require ts-node/register --require babel-core/register tests/domains/*"
},
模块代码如下:
export default {
browserAction: {
onClicked: chrome.browserAction !== undefined ? chrome.browserAction.onClicked : undefined,
app
目录是用 webpack 编译的,但在 npm test
时会抛出错误。
以下 gulp 任务使用 webpack 成功 运行s。
Gulp任务
gulp.task(`${PLATFORM}-webpack`, (callback) => {
webpack(Object.create(webpackConfig), function(err, stats) {
if(err) throw new Exception(`${PLATFORM}-webpack`, err);
console.log(`[${PLATFORM}-webpack]`, stats.toString({
colors: true
}));
callback();
});
});
我是不是还遗漏了什么?
谢谢
查看您的目录,除非您打错了目录,否则您要查找的文件位于“../../app/domains/driver.ts”中。
chrome.browserAction 是网络扩展代码。 Node.js 不知道 chrome 全局或网络扩展。
如果你想测试网络扩展代码,你需要为你使用的每个 API 实现一个模拟实例,遗憾的是,到目前为止还没有类似的东西。我已经开始在这里为我的扩展创建一些模拟函数:
https://github.com/Lusito/forget-me-not/blob/master/test/browserMock.ts
请记住,我制作这些是为了满足我的需要。它们绝不是完整的,也没有涵盖所有情况。
我通过将chrome
定义为
来解决它
const chrome = require('sinon-chrome/apps');
(global as any).chrome = chrome;
我很难用 typescript
编译测试。当尝试 运行 npm test
得到
onClicked: chrome.browserAction !== undefined ? chrome.browserAction.onClicked : undefined
我的基本测试看起来像:
import Nightmare from "nightmare";
import * as chai from "chai";
const Client = require('node-rest-client').Client;
import chaiString from "chai-string";
chai.use(chaiString);
import DomainDriver from "../../app/scripts/domains/driver";
const expect: any = chai.expect;
测试配置如下:
{
...
"test": "mocha --recursive --require ts-node/register --require babel-core/register tests/domains/*"
},
模块代码如下:
export default {
browserAction: {
onClicked: chrome.browserAction !== undefined ? chrome.browserAction.onClicked : undefined,
app
目录是用 webpack 编译的,但在 npm test
时会抛出错误。
以下 gulp 任务使用 webpack 成功 运行s。
Gulp任务
gulp.task(`${PLATFORM}-webpack`, (callback) => {
webpack(Object.create(webpackConfig), function(err, stats) {
if(err) throw new Exception(`${PLATFORM}-webpack`, err);
console.log(`[${PLATFORM}-webpack]`, stats.toString({
colors: true
}));
callback();
});
});
我是不是还遗漏了什么? 谢谢
查看您的目录,除非您打错了目录,否则您要查找的文件位于“../../app/domains/driver.ts”中。
chrome.browserAction 是网络扩展代码。 Node.js 不知道 chrome 全局或网络扩展。
如果你想测试网络扩展代码,你需要为你使用的每个 API 实现一个模拟实例,遗憾的是,到目前为止还没有类似的东西。我已经开始在这里为我的扩展创建一些模拟函数: https://github.com/Lusito/forget-me-not/blob/master/test/browserMock.ts
请记住,我制作这些是为了满足我的需要。它们绝不是完整的,也没有涵盖所有情况。
我通过将chrome
定义为
const chrome = require('sinon-chrome/apps');
(global as any).chrome = chrome;