在现代编程工作流程中,一次使用了许多测试框架.例如,在PHP世界中,它实际上是一次使用单元测试,集成测试和功能/验收测试的标准方法.大多数情况下,不同的框架用于不同的测试类型.我使用PHPSpec组合单元,PHPunit用于集成,CodeCeption用于功能测试.
是否有可能聚合每个框架返回的代码覆盖率结果?是否有任何工具可以聚合来自不同框架的代码覆盖率报告? 或者,只有在每个框架不正确时才能查看每个框架的单个结果,因为每个代码覆盖率报告都没有考虑其他测试.
我们正在开发一个实时应用程序,我们正在使用nginx推送流模块作为websockets部分.首先,数据从客户端发送到php脚本,该脚本执行一些身份验证并将所需信息存储在数据库中,然后将信息推送到nginx,然后将其发送给特定套接字上的订阅用户.通常会出现这样的情况:从这个脚本到本地nginx有多30个http请求(我不确定这是一件坏事吗?).
问题
是否可以在没有http请求的情况下将信息从php发送到nginx?有没有办法让我的PHP脚本可以与nginx通信?处理这种通信的最佳做法是什么?每个PHP脚本发送30多个http请求是一个好习惯吗?
我已经阅读了一些AMQP解决方案,但没有找到nginx是来自rabbitmq的消息的消费者的信息.
如果不清楚,我会很乐意提供任何其他信息.
我们有mongodb和gogo的mgo驱动程序.除应用程序(golang二进制文件)之外,还有两个连接到mongodb的应用程序服务器.Mongodb作为副本集运行,每个服务器根据副本的当前状态连接两个主服务器或辅助服务器.
我们SocketException handling request, closing client connection: 9001 socket exception在其中一个mongo服务器上经历过(导致我们的应用程序与mongodb连接死亡.之后,副本集继续正常运行,但我们的第二台服务器(错误未发生)连接已死亡同样.
在golang日志中,它表现为:
read tcp 10.10.0.5:37698-\u003e10.10.0.7:27017: i/o timeout
为什么会这样?如何防止这种情况?
据我所知,mgo通过url连接到整个副本(它通过单个实例的url检测整个拓扑)但是为什么在其中一个服务器上连接的dy使其在第二个服务器上被杀死?
编辑:
"gopkg.in/mgo.v2"例如,我正在发布一个帖子请求,我根本不需要响应对象.
_, err := http.Post(url, "", &buf)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我是否可以避免内存泄漏?响应是否会被排空,以便正确连接重用?或者我需要做通常的defer resp.Body.Close()事情?
go ×3
codeception ×1
connection ×1
datetime ×1
http ×1
memory-leaks ×1
mgo ×1
mongodb ×1
nginx ×1
php ×1
phpspec ×1
phpunit ×1
rabbitmq ×1
real-time ×1
testing ×1