Node.js sqlite3代码不在jasmine中运行

Node.js sqlite3代码不在jasmine中运行,node.js,sqlite,jasmine,Node.js,Sqlite,Jasmine,有人试过在jasmine测试框架下运行sqlite3代码吗?出于某种原因,相同的代码可以显示带有节点的表行,但不能显示运行jasmine的节点下的表行 例如,这将显示表[table_name]中的所有行: $ node src/test.js var sqlite3 = require('sqlite3').verbose(); var db = new sqlite3.Database("/home/user/test_db.sqlite3", 'OPEN_READ'); db.each("S

有人试过在jasmine测试框架下运行sqlite3代码吗?出于某种原因,相同的代码可以显示带有节点的表行,但不能显示运行jasmine的节点下的表行

例如,这将显示表[table_name]中的所有行:

$ node src/test.js
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database("/home/user/test_db.sqlite3", 'OPEN_READ');
db.each("SELECT info FROM table_name", function(err, row) {
    console.log(row.info);
});
jasmine下的相同代码不:

$ jasmine spec/TestSpec.js 
describe("Orders table", function() {
     it("should display all items in table [table_name]", function() {
        var sqlite3 = require('sqlite3').verbose();
        var db = new sqlite3.Database("/home/user/test_db.sqlite3", 'OPEN_READ');
        db.each("SELECT info FROM table_name", function(err, row) {
           console.log(row.info);
        });
     })
});

有人知道为什么它在一个表下运行而在另一个表下运行吗?

您需要异步运行测试。Jasmine没有等待数据库连接和迭代。您可以向Jasmine提供一个示例,让它知道可以运行测试。此外,根据文档,我必须提供sqlite3.OPEN_READONLY作为实现此功能的模式。也许这是由于版本的变化

describe("Orders table", function() {
    it("should display all items in table [table_name]", function(done) {
        var sqlite3 = require('sqlite3').verbose();
        var db = new sqlite3.Database("/home/user/test_db.sqlite3", sqlite3.OPEN_READONLY, function() {
            db.each("SELECT info FROM table_name", function(err, row) {
                console.log(row.info);
            }, done);
        });
    })
});

您需要异步运行测试。Jasmine没有等待数据库连接和迭代。您可以向Jasmine提供一个示例,让它知道可以运行测试。此外,根据文档,我必须提供sqlite3.OPEN_READONLY作为实现此功能的模式。也许这是由于版本的变化

describe("Orders table", function() {
    it("should display all items in table [table_name]", function(done) {
        var sqlite3 = require('sqlite3').verbose();
        var db = new sqlite3.Database("/home/user/test_db.sqlite3", sqlite3.OPEN_READONLY, function() {
            db.each("SELECT info FROM table_name", function(err, row) {
                console.log(row.info);
            }, done);
        });
    })
});