[英]chrome is not defined - Mocha and Typescript
我很難用typescript
編譯測試。 當嘗試運行npm test
onClicked:chrome.browserAction!==未定義? chrome.browserAction.onClicked:未定義
我有看起來像的基本測試:
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成功運行。
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全局或Web擴展。
如果要測試Web擴展代碼,則需要為所使用的每個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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.