Когда я запускаю dredd, кажется, что он просто зависает после первого вызова api. Я не уверен, как отлаживать или диагностировать. Я запускаю службу asp.net 5 mvc 6 api с командой dnx web
. Как я могу узнать, что происходит или что может быть проблема?Dredd, кажется, висеть с api-вызовами на сервере asp.net kestrel
Я попытался добавить крючки для отладки и увидеть, что он вызывает первый api, а затем просто никогда не запускает событие after. Я тестировал api с почтальоном и завивал с правильными результатами. Dredd также работает с одним и тем же планом, если я использую экспресс-узел node.js.
Единственной комбинацией, которая терпит неудачу, является Dredd с ответом сервера kestrel asp.net. Сервер регистрирует, что запрос сделан, и отправляется ответ, поэтому он запускает тест, но просто не заканчивается.
Dredd ищет какой-то обработчик после обработки, потому что я вижу сервер, получающий запрос с dredd, независимо от .net или node.js. Даже если я развожу процесс .net api в другом процессе, это не сработает, почему это важно? Это должно быть просто HTTP-запросы для dredd в любом случае?
Заботится ли он, чтобы он возвращался с сервера пустельги?
ответ пустельга
Content-Type → application/json; charset=utf-8
Date → Wed, 06 Jan 2016 17:14:10 GMT
Server → Kestrel
Transfer-Encoding → chunked
Body {"foo":"bar"}
dredd.yml
dry-run: null
hookfiles: null
language: nodejs
sandbox: false
server: dnx web
server-wait: 3
init: false
names: false
only: []
output: []
header: []
sorted: false
user: null
inline-errors: false
details: false
method: []
color: true
level: verbose
timestamp: false
silent: false
path: []
blueprint: test.apib
endpoint: 'http://localhost:5000'
выход консольной dredd
команды
Starting server with command: dnx web
Waiting 3 seconds for server command to start...
Hosting environment: Production
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
info: Beginning Dredd testing...
info: Found Hookfiles: hooks.js
hook: before all
hook: before each
info: Microsoft.AspNet.Hosting.Internal.HostingEngine[1]
Request starting HTTP/1.1 GET http://localhost:5000/message
info: Microsoft.AspNet.Mvc.Controllers.ControllerActionInvoker[1]
Executing action method Foo.Controllers.HelloController.Get with arguments() - ModelState is Valid'
info: Microsoft.AspNet.Mvc.Infrastructure.ObjectResultExecutor[1]
Executing ObjectResult, writing value Microsoft.AspNet.Mvc.ActionContext.
info: Microsoft.AspNet.Mvc.Infrastructure.MvcRouteHandler[2]
Executed action Foo.Controllers.HelloController.Get in 0.0165ms
info: Microsoft.AspNet.Hosting.Internal.HostingEngine[2]
Request finished in 0.041ms 200 application/json; charset=utf-8
test.apib
# GET /message
+ Response 200 (application/json; charset=utf-8)
{"foo":"bar"}
Не мог бы вы поделиться со мной APIBlueprint вы используете? – Vincenzo
уверен, я добавил план выше и обновил более простой выход на консоль. Я использовал один и тот же проект с узлом node.js express server, и он работает ... только что-то о том, чтобы сделать запрос против dnx .net web api .. Он ищет какой-то обработчик, потому что я вижу, что сервер получает запрос. Даже если я начну процесс api в другом процессе, это не сработает, почему это важно? Это должно быть просто HTTP-запросы для dredd в любом случае? – MonkeyBonkey