我目前正在尝试将一些测试部署到Azure管道(但这应适用于任何CICD框架)
我有一个快递项目,我在supertest
中使用mocha
和npm install
npm start
npm test
在本地运行测试,一切都很好。
现在,我想部署到生产环境,并且想在部署发生之前在管道中运行测试。
问题是,由于这些测试是针对http运行的,因此它们需要服务器运行。
所以,在我的管道中,我有
npm test
但是,事实是,Test::func1();
在服务器启动时未在运行,而是挂在正在运行的服务器中。
服务器启动时是否可以启动测试?然后在测试完成后停止服务器?
还是有更好的方法来实现所有这些?
答案 0 :(得分:0)
如果您使用的是Supertest,我建议您为测试导出Express应用程序,而不要像他们的文档中所示运行它,那么您只需要运行from sacred import Experiment
from sacred.observers import MongoObserver
ex = Experiment()
ex.observers.append(MongoObserver.create())
def compute():
summ = layer1 - layer2
return summ
@ex.config
def my_config():
hp_list = [{"neurons" : [32,32] , "dropout": 1.0},
{"neurons" : [32,32] , "dropout": 0.7},
{"neurons" : [32,16] , "dropout": 0.9},
{"neurons" : [24,16] , "dropout": 0.9},
{"neurons" : [24,8] , "dropout": 0.9},
{"neurons" : [16,8] , "dropout": 0.9},
{"neurons" : [64,64] , "dropout": 0.9},
{"neurons" : [64,64] , "dropout": 0.7},
{"neurons" : [64,32] , "dropout": 0.9},
{"neurons" : [64,32] , "dropout": 0.7},
{"neurons" : [48,32] , "dropout": 0.9},
{"neurons" : [48,32] , "dropout": 0.7},
{"neurons" : [48,16] , "dropout": 0.9},
{"neurons" : [48,16] , "dropout": 0.7},]
n_epochs = 2
@ex.capture
def training_loop(hp_list, n_epochs):
for j in hp_list:
print("Epoch: ", n_epochs)
# layer1 = random.randint(18,68)
# layer2 = random.randint(18,68)
# layer3 = random.randint(18,68)
layer1 = j["neurons"][0]
layer2 = j["neurons"][1]
dropout_ratio = j["dropout"]
print("WHATS UUUUUP",j, layer1, layer2, dropout_ratio, sep="_")
# vae_training_loop_NN_DO(i, layer1, layer2, dropout_ratio )
@ex.automain
def my_main():
training_loop()
和npm install
。
例如:
app.js
npm test
test.spec.js
const express = require('express');
const app = express();
// Add middlewares
module.exports = app;