Meteor Tinytest登录密码

Meteor Tinytest登录密码,meteor,tinytest,Meteor,Tinytest,我很困惑。因此,我创建了一个名为myu-package的Meteor包,现在我想使用Tinytest对其进行测试。现在我正在尝试一个简单的测试:测试以确保管理员用户可以登录: my_app/packages/my_package/package.js Package.on_test(function (api) { api.use("my_package@1.0.0"); api.use("tinytest"); api.use("test-helpers");

我很困惑。因此,我创建了一个名为
myu-package
的Meteor包,现在我想使用
Tinytest
对其进行测试。现在我正在尝试一个简单的测试:测试以确保管理员用户可以登录:

my_app/packages/my_package/package.js

Package.on_test(function (api) {
    api.use("my_package@1.0.0");
    api.use("tinytest");
    api.use("test-helpers");
    api.add_files("tests.js");
});
my_app/packages/my_package/tests.js

if (Meteor.isClient) {
    Tinytest.addAsync("Can admin log in?", function(test, next) {
        var result = '';
        Meteor.loginWithPassword('admin','adminadmin',function(error) {
            // Called with no arguments on success
            // or with a single Error argument on failure.
            if (error) {
                alert(JSON.stringify(error, null, 4));
                result = false;
            } else {
                result = true;
            }
            test.equal(result,true);
            next();
        });
    });
}
警报()的结果:

但是数据库确实包含我们正在测试的管理员用户

exit tinytest
cd my_app
meteor
meteor mongo (in new terminal window)
db.users.find()  // Returns admin user document!

所以我的问题是:当用户确实存在于数据库中时,为什么alert()报告“用户未找到”?

当您运行测试时,会创建一个新的临时meteor应用程序,该应用程序具有自己的本地MongoDB数据库


您可以通过设置环境变量MONGO_URL来定义现有的MongoDB服务器。但它将删除数据库的现有内容。

您应该在设置测试代码时创建一个管理员用户。
exit tinytest
cd my_app
meteor
meteor mongo (in new terminal window)
db.users.find()  // Returns admin user document!