是否可以在node.js上将数据库切换到测试数据库?

时间:2014-01-03 20:58:25

标签: node.js integration-testing protractor

我想在开发服务器上运行e2e测试,例如量角器(或其他Selenium测试)。是否可以切换到不同的测试数据库进行测试?我在每次测试运行之前加载灯具。 这种测试的好方法是什么 - 在后端使用node.js和mongo.db,关于数据库设置?

提前谢谢。

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用不同的配置来启动应用程序的另一个实例,即连接到不同的数据库并侦听不同的端口。然后你可以将Selenium指向它。从理论上讲,应用程序的FE应该与端口无关,但是如果这有问题,那么nginx可以提供很大的帮助。

让我们考虑你想要它在端口3333和域test.myapp上。这是nginx的示例配置文件。

server {
    listen 80;
    server_name test.myapp;

    location / {
            proxy_pass http://localhost:3333;
            proxy_set_header Host $host;
            proxy_buffering off;
    }
}

当然,您希望为当前的开发服务器定义另一台服务器。只需冲洗并重复。

通常,nodejs应用程序中的配置是根据环境变量NODE_ENV的值选择的。当您运行应用程序时,您可以像这样传递它(我假设它是Linux服务器):

$ NODE_ENV=test node app.js

然后在您的应用程序中,您可以轻松访问它:

var env = process.env.NODE_ENV

我希望它有所帮助。