簡體   English   中英

chrome未定義-摩卡和打字稿

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM