我可以在非nodejs app中使用swagger测试模板吗?

时间:2016-02-26 16:39:27

标签: php swagger web-api-testing

我正在为php应用程序构建一个api测试套件。现在该应用程序正在使用swagger注释,我可以轻松创建一个swagger.json。但是从查看the swagger test template,看起来我必须首先使用swagger节点创建一个nodejs应用程序?有没有办法可以跳过这一步并使用我的php应用程序?

编辑:我已经使用swagger-php启动并运行了swagger文档。只是想知道是否可以在不使用swagger-node的情况下使用swagger-test-template。

5 个答案:

答案 0 :(得分:4)

我是swagger-test-templates的贡献者之一。 (我之前没有回答任何问题,所以请耐心等待)

我通过Github问题提出了您的问题,最近有人打开这个问题来解决这个问题!我在那里回答了,但我会在这里复制它并再扩展一下。我希望它有所帮助。如果我没有完全回答你的问题,请跟进。

  

简单回答:不,它不仅仅适用于Node.js API或swagger-node。

     

更长的答案:您可以像Node.js项目中的任何其他Node.js模块一样使用STT,完全靠它自己。有关如何独立运行它的示例,请参阅Readme或测试文件。此外,不必在Node.js中实现API,以便STT生成的测试使用HTTP请求来定位它。您必须使用Node.js来利用此模块的功能,但只要您将测试指向正在运行的服务器(localhost:1337,my.api.test.net),后端实现就无关紧要了。需要注意的是,此模块设计为使用mocha运行,这是一个Node.js测试运行器/框架。所以测试必须在Node.js项目中,但服务器实现不是。

答案 1 :(得分:1)

今天我有同样的问题,发现这个帖子没有解决方案。

所以我asked the project developers他们说它可以做你想做的事。

  

简单回答:不,它不仅仅适用于Node.js API。

     

更长的答案:API不必在Node.js中实现   STT生成测试以使用HTTP请求来定位它。你必须使用   Node.js利用这个模块(显然),但只要你指出   运行服务器上的测试(localhost:1337,my.api.test.net)   实施并不重要。这里需要注意的是,这个模块是   旨在与mocha一起运行,mocha是一个Node.js测试运行器/框架。   所以测试必须在Node.js项目中,但服务器   实施没有。

答案 2 :(得分:0)

您可以使用他们的工具'swagger-codegen'或online editor为不同平台生成服务器应用程序,不仅仅是nodejs:粘贴您的swagger配置并选择生成服务器 - > Silex PHP。

答案 3 :(得分:0)

Swagger Codegen生成的PHP API客户端带有需要使用测试数据更新的测试用例(模板)。您可以在此folder

中找到一些示例

要运行测试用例,只需按照README.md

中的说明操作即可

答案 4 :(得分:-1)

绝对可以这样做。转到https://github.com/swagger-api/swagger-ui,下载zip。 Zip文件有一个dist文件夹。这就是在API服务器中开发swagger文档所需的全部内容。将此文件夹与Php代码一起包含在服务器目录中。在dist里面有index.html和swagger.json。您可以修改这两个文件以创建自己的文档并测试您的API。