首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Npm测试Firebase错误

Npm测试Firebase错误
EN

Stack Overflow用户
提问于 2017-12-14 08:54:57
回答 1查看 197关注 0票数 0

我正在尝试对我的代码运行一些测试。但每次我尝试运行它们时,都会返回以下结果

代码语言:javascript
复制
> stockmarketsimulator@0.0.0 test /home/ubuntu/workspace
 > mocha


home/ubuntu/workspace/node_modules/@firebase/app/dist/cjs/src       /firebaseApp.js:343
throw appErrors.create(code, args);
^
FirebaseError: Firebase: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp() (app/no-app).
at error (/home/ubuntu/workspace/node_modules/@firebase/app/dist/cjs/src/firebaseApp.js:343:21)
at app (/home/ubuntu/workspace/node_modules/@firebase/app/dist/cjs/src/firebaseApp.js:227:13)
at Object.serviceNamespace [as database] (/home/ubuntu/workspace/node_modules/@firebase/app/dist/cjs/src/firebaseApp.js:283:47)
at Object.<anonymous> (/home/ubuntu/workspace/routes/news.js:7:25)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
at Module.require (module.js:513:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/home/ubuntu/workspace/test/test.js:8:12)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
at Module.require (module.js:513:17)
at require (internal/module.js:11:18)
at /home/ubuntu/workspace/node_modules/mocha/lib/mocha.js:231:27
at Array.forEach (native)
at Mocha.loadFiles (/home/ubuntu/workspace/node_modules/mocha/lib/mocha.js:228:14)
at Mocha.run (/home/ubuntu/workspace/node_modules/mocha/lib/mocha.js:514:10)
at Object.<anonymous> (/home/ubuntu/workspace/node_modules/mocha/bin/_mocha:484:18)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
at Function.Module.runMain (module.js:605:10)
at startup (bootstrap_node.js:158:16)
at bootstrap_node.js:575:3

但当我在heroku上预览该应用程序时,该应用程序运行良好。

test.js

代码语言:javascript
复制
this.jsdom = require('jsdom-global')()
global.$ = global.jQuery = require('jquery');

 var expect = require("chai").expect;
 var test = require("../public/javascripts/testing");
 var getStock = require("../public/javascripts/getStock.js");
 var index = require("../routes/index.js");
var news = require("../routes/news.js");
var express = require('express');
var firebase = require('firebase');
var router = express.Router();
var yahooStocks = require("yahoo-stocks");


before(function(done) {
var config = {
    apiKey: process.env.firebase,
    authDomain: "xxxxxxxx",
    databaseURL: "xxxxxxxx",
    projectId: "xxxxx",
    storageBucket: "",
    messagingSenderId: "xxxxxxxxxxxxxx"
};
firebase.initializeApp(config);

firebase.auth().signInWithEmailAndPassword("default", "default");

done();
})


describe("Home page tests", function() {

it("Should Callback AAPL",function(done) {
    this.timeout(3000);
    news.get_stock_news("AAPL",function(data){
        console.log(data);
        expect(data).to.be.above(0);
        done();
    })
 })
 });

news.js

代码语言:javascript
复制
var express = require('express');
var firebase = require("firebase");
var router = express.Router();
var https = require("https");

// Get a reference to the database service
var database = firebase.database();
var googleFinance = require('google-finance');
var userUid;
var handle;
var signedIn = false;
var  names = [];
var info = [];
var urls = [];
var namesReturned = [];

var auth = "Basic " + new Buffer(username + ':' +         password).toString('base64');

   function get_stock_news(symbol,callback){
          var request = https.request({
            method: "GET",
            host: "api.intrinio.com",
            path:"/news?ticker="+symbol+"&page_size=1",
            headers: {
                "Authorization": auth
            }
            } , function(response) {
                  var json = "";
                  response.on('data', function (chunk) {
                      json += chunk;
                  });
                  response.on('end', function() {
                      var company = JSON.parse(json);
                      callback(company.data[0].ticker);

                  });
                });

 });

 module.exports = router;
 module.exports.get_stock_news = get_stock_news;

上面是我正在使用的代码。代码可以工作,所以如果有一些缺少的分号或其他东西,这是我的格式。问题是当我尝试运行一些测试时,我得到了firebase尚未初始化的错误

EN

回答 1

Stack Overflow用户

发布于 2017-12-17 23:46:01

news.js中调用firebase.initializeApp()之前,不能在test.js中调用test.js

看起来您没有使用database,因此删除news.js中的第7行并尝试使用它。如果其他测试(上面没有包括)需要它,请在test.js中初始化database.js并将其作为依赖项传递给news.get_stock_news函数,或者在news.js中添加initDatabase(firebaseApp)函数并在每次测试之前调用它,以正确设置database

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47804371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档