Django是否有与Rails测试工具相媲美的BDD测试工具?

16 投票
5 回答
8223 浏览
提问于 2025-04-16 02:20

Ruby和Rails有一些非常好用的行为驱动设计/开发测试框架,比如CucumberRSpec

那么,Python和Django有没有类似的东西呢?(我不是在说像PyUnit那样简单的单元测试)

5 个回答

1

如果你说的是高层次的测试,而不是单元测试,那么你仍然可以使用Cucumber。Cucumber可以和Webrat以及Mechanize结合使用,这样你就可以写一些测试故事来测试你的Django应用。我自己就有这样的设置。你也可以把Cucumber和Watir结合起来,进行基于浏览器的测试。

虽然没有像FactoryGirl那样的工具可以自动生成模型的数据,但你可以使用Django的fixtures来创建模型的初始数据,并且只有在测试模式下才安装这些fixtures。这样你就可以开始测试,并且有一些数据可以用来测试。

通过这些工具,你可以建立一个相当全面的高层次测试套件。然后你可以使用Django的单元测试来进行更细致的低层次测试。

3

如果还有人来这里看,Aloe 是一个对 lettuce 的升级版本,并且可以和 django 1.8 一起使用。我现在开始用这个了。

19

有一个新工具叫做 Lettuce,它承诺能成为Python版本的Cucumber。这个工具现在开始支持Django,结合Django已有的测试工具,对于单元测试来说非常不错。

还有一个叫 Windmill 的工具,它提供了一个很好的基于浏览器的测试工具,可以用来构建图形界面测试。如果把它和像Lettuce这样的工具结合起来写验收测试,再加上直接使用 unittestnosetests,那你就可以很顺利地进行测试了。

需要记住的是,Ruby和Python之间的文化稍有不同。Ruby更喜欢测试,而Python则更注重文档。因此,在Python中没有那么多的测试框架,只有几个非常可靠的框架,偶尔会有一些特别的工具(比如Lettuce)。

希望这些信息对你有帮助。

撰写回答