我可以使用Cucumber来测试使用多种语言的应用程序吗?

时间:2017-03-20 17:18:48

标签: java python hadoop cucumber cucumber-jvm

我目前是Hadoop应用程序团队的一员,其中一部分将使用Spark,其中一部分将使用Java或Python(例如,我们无法使用Sqoop或任何其他Hadoop附带的摄取工具,将实现我们自己的版本)。我只是一名数据科学家,所以我真的只熟悉Spark部分,所以对缺乏细节表示道歉,或者这个问题一般都很糟糕 - 我只知道工程团队需要Java和Python支持。我被要求使用Cucumber(或任何其他BDD框架)进行验收测试我们的应用程序,一旦我们进一步前进。我找不到任何博客,代码库或其他参考,其中黄瓜被用于多语言应用程序,几乎没有任何使用Hadoop的地方。是否可以使用Cucumber或任何其他现有的BDD框架测试我们的应用程序?我们已经计划通过JUnit / PyUnit / etc进行单元和集成测试。

3 个答案:

答案 0 :(得分:0)

答案是肯定的,如果您使用一种语言来测试两种语言。

Cucumber-JS可用于测试Javascript和PHP - 或者至少是网页上这些脚本的结果。

如果您的意思是在一个功能文件集中使用两种不同的Cucumber变体,我不会推荐它。

如果需要,我将创建两个不同的套件,使用Java和Python,以所需语言测试脚本。但是,如果您只使用黄瓜框架来测试图形用户界面,为什么还有两种语言可以为它提供动力呢?

在这里,您需要从使用它的人那里获得想法,使用Python和Java最熟悉的语言,并找到合适的软件来集成它。对于基于Web的,Selenium使用最多,但对于桌面应用程序,我不知道(因为我只在基于Web的应用程序上使用黄瓜)。

如果您需要运行Python脚本以进行设置,可以执行此操作from Java。您还可以运行Java from Python

基本上,选择最适合您需求的语言 - 两者都有优势(顺便说一句,Cucumber JVM比Python + Lettuce或Jython更受支持)。

答案 1 :(得分:0)

功能文件将使用Gherkin编写。如果您使用Java或Python,Gherkin看起来是一样的。因此从理论上讲,您可以从Java端Python执行相同的规范。然而,这没有任何意义。它只是一种在两种不同语言中实现相同行为的方式,因此是两种不同的地方。唯一的结果将是重复和悲惨的开发人员。

您可以做的是使用BDD和Gherkin来推动实施。但不同语言的行为不同。这将引导您使用两组不同的功能。根据您描述的背景,这是可能的,也许是一个好主意。

答案 2 :(得分:0)

要使用黄瓜测试桌面应用程序,您可以使用specflow,它使用visual studio中名为teststack.white的框架。只需谷歌黄瓜specflow,teststack.white等,你应该能够走上正轨