如何使用Testacular(Karma)调试Jasmine规范运行?

Buz*_*zzy 12 javascript jasmine karma-runner

我有一个关于Jasmine规范的小项目,我使用Testacular作为我的测试运行员.我不明白我如何调试应用程序代码或规范代码.当我尝试在Chrome开发工具中设置断点时,下次运行规范时不会触发该断点,因为它每次都会使用新的查询字符串加载文件.

到目前为止我发现的最好的事情是使用console.log()但我宁愿使用Chrome Dev Tools断点.

(我使用Visual Studio 2012进行开发.)

谢谢

Jos*_*mes 13

Testacular不是用于调试的最佳工具.它的强大之处在于它将在多个浏览器中运行您的测试,并且可以非常快速地完成,并且每次更改文件时都可以执行此操作,因此它会告诉您是否已经破坏了测试.但是如果你需要调试,它不是最好的工具.

您确实可以在代码中放置一个"调试器"语句以使其中断,但如果这是多个测试中遇到的常见代码行,您最终可能会在测试中遇到相同的断点数十次或更多次.也许它只是在一个给定的场景中打破,所以你必须跳过所有断点,除了你遇到问题的那一个.如果您使用的是mocha或jasmine,则可以在整个测试套件中仅运行一个测试.随着jasmine将一个测试从it()更改为iit(),使用mocha,它就是it.only().但即便如此,对于这项工作来说,测试仍然是错误的工具.

一个更好的解决方案是使用不同的测试"设置",然后运行正在破坏的单个测试.使用jasmine或mocha或任何您选择的测试框架都可以轻松完成.您已经在其中一个框架中编写了测试版本,因为testacular是一个自动化工具而不是测试框架.所以只需创建一个测试运行器文件并使用它,加载文件,如果你正在使用chrome,进入开发工具,点击MAC上的Command-O或Windows上的Control-O,然后选择你想要的文件把断点放进去,然后设定你的断点,然后用煤气做饭.

在测试框架中使用传统的"测试运行器"不会与使用testacular相冲突.两人将愉快地一起跑.

以下是我在主要3个测试框架中执行此操作的首选文章的链接:

茉莉花:http://net.tutsplus.com/tutorials/javascript-ajax/testing-your-javascript-with-jasmine/

QUnit:http://www.testdrivenjs.com/getting-started/qunit-setup/

摩卡:我没有链接到这篇好文章.到2013年2月中旬,我的PluralSight,com测试客户端JavaScript的课程将会发布,你可以在那里找到它,以及有关设置QUnit和Jasmine的详细说明.他们有一个简短的免费试用版,您可以使用它来查看内容而无需付费.该URL将在发布时链接到该课程. http://pluralsight.com/training/Au​​thors/Details/joe-eames


Mar*_*off 6

您可以单独使用该语句debugger;,只要开放工具面板处于打开状态且启用了断点,Chrome就会在该语句中断开.