问题标签 [testem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
560 浏览

javascript - 使用 PhantomJS 在 travis 上测试失败或随机挂起

我用 testem 和 PhantomJS 运行我的测试,它们都在我的本地机器上通过,但是当我在 travis 上运行它们时,它们随机失败或挂起,这不像某些特定测试失败,有些通过,随机失败,我不知道这是怎么回事。我的项目在 github https://github.com/eguneys/marbles-site上可用

编辑

我对其进行了一些优化,它修复了挂起问题,现在的问题是它未能通过第一次集成测试。我App.reset()在第一次集成测试之前添加了一个。现在它通过了。之前遇到过麻烦App.reset()

Erik Bryn 建议您可以App.reset() 在该setup方法中使用,而不是teardown这样您就可以看到应用程序的最后状态。但这会导致测试失败,我无法解开谜团,App.reset()并且担心测试会随时失败。然而他们现在通过了。

0 投票
1 回答
1331 浏览

ember.js - Ember cli 和 testem

我是 Ember 的新手,我想启动并运行一个简单的项目,并在 chrome 中运行一些集成测试。

我买了《开发 Ember.js Edge》一书,他们在其中创建了应用程序 ember-trackr,但随着 JS 世界中的所有事物快速发展,细节似乎发生了变化。

如果我:

我收到一个错误:

我不确定,但我认为http://emberjs.com/guides/testing/integration/中的步骤在使用时已经处理好了

因此,如果我创建一个新应用并运行 testem:

我在控制台和 chrome launce 中看到“等待跑步者”消息。

现在,如果我尝试添加一个简单的测试(例如,检查页面内容中的某些文本 - 从http://www.ember-cli.com/#testing复制)作为测试/test1.js:

如果我运行“testem”,我只会收到等待跑步者的消息。

如果我运行“余烬测试”,我会得到:

有没有人知道我错过了什么?

此外,如果尚未完成,最好使用 ember-cli 使 ember-trackr 示例应用程序保持最新状态,这样它就可以开箱即用 - 如果我能弄清楚,我很乐意做出贡献它缺少什么...

谢谢。

0 投票
1 回答
1061 浏览

google-chrome - 启动带有特定扩展名的 testem chrome 浏览器

我试图在Testem加载了特定扩展程序的 Chrome 浏览器中启动我的测试,但默认情况下,它是一个空白的 Chrome 配置文件,它已启动,并且不会将扩展程序从一个运行保留到另一个运行。

例如,我的目标是Testem必须启动预加载的 Chrome 浏览器,Ember Inspector以便我可以使用该工具调试测试。

我想知道这是否可能,如果可以,如何。

0 投票
1 回答
708 浏览

ember.js - 使用 Ember-CLI testem 时排除文件

我正在尝试使用 Ember-CLI - Testem 运行我的测试。Ember-CLI 使用 tests/index.html 而不是通常的 testem.json 配置进行测试。

有什么办法可以排除某些文件被内置到 app.js 中?

用例:我有一些 js 文件,我在其中注入了一些依赖项。这些依赖在测试环境中是不同的。我想忽略这些文件并从我的测试注入器中注入依赖项。

0 投票
1 回答
243 浏览

javascript - AngularJS + Testem + Jasmine:为什么注入()会给出这个 $injectorr 错误?

我正在使用带有 Jasmine 的 Testem 来设置一个环境,以便在我的 AngularJS 应用程序中开始单元测试。在我第一次尝试使用注射器之前,一切都很好。这是我回来的:

测试.js

错误控制台输出:

似乎有一些明显的东西我错过了,但我不能完全掌握它。请注意,在代码块中删除beforeEach(inject());和编写标准测试it就像一个魅力。另外,如果我只是声明一个angular.module('myApp');然后尝试module()这样inject()做,它工作正常。似乎我的模块定义中发生了一些事情,但应用程序本身运行良好,我可以说没有错误!

有人遇到这个或知道我应该调查什么吗?提前致谢!

编辑:

我认为如果我为我的问题提供一些背景信息可能会更有意义。我已经开发 Angular 应用程序几个星期了,而且由于没有进行单元测试,我已经有过好几次了。决定从现在开始进行 TDD,我设置了 Testem,编写了一个 .spec.js 文件并尝试开始。我没有测试任何现有的代码,这将在稍后出现,而只是尝试测试我正在使用的应用程序的一部分。在编写我的第一段代码或测试之前,仅根据文档设置 module() 和 inject() 调用就惨遭失败。这就是我现在的位置。

0 投票
1 回答
375 浏览

javascript - 在 Sauce Labs 上进行 Ember CLI 测试

如何ember-cli在 Sauce Labs 上运行测试?Testem 有一个示例配置,但我不知道如何将其转换为已ember-cli编译的测试,因为testem.json在测试运行时将其打包到构建中。

我尝试做一个ember build --env=test然后放入"test_page": "dist/tests/index.html"我的testem.js并像示例中一样运行testem ci --port=8080,但这给了我 0 个测试运行。

0 投票
1 回答
1022 浏览

ember.js - 当我运行 ember test 并访问 /tests 结果不一致时,我该如何排除这些不同的原因?

我已经使用 ember 一个多月了,但我还没有找到解决我遇到的一些测试不一致问题的解决方案。

问题是当我从命令行运行 ember test 并在浏览器中访问 /tests 时,有时我会看到不同的测试总数。似乎使用 phantomjs 进行 ember 测试,因为测试运行器正在跳过一些测试。最重要的是,结果似乎也不一致。

例如,我有一个简单的验收测试:

当我访问 /tests 时,我的所有测试都通过了,但是当我运行 Ember 测试时,我遇到了一个失败:

提前感谢您的帮助。

0 投票
1 回答
2050 浏览

ember.js - How can I get source maps to work when running tests using ember-qunit for an ember app built on ember-cli

I have an Ember app built using ember-cli and I'm writing my tests using the ember-qunit testing adapter and running them in the browser using testem as instructed in the ember-cli documentation. Although debugging in Google Chrome works fine when I'm interesting with my app, I am unable to use many debugging features such as breakpoints when running my tests.

I often run into a problem that my tests fail despite my actual app seeming to work properly, and to investigate the problem I would like to step through code while my tests are running.

But when I step into code that appears in vendor.js I just just see the following contents in my vendor.js:

These two lines are lines 6 & 7 of the file. The lines before this are blank, and these two lines are the last lines in the file. The debugger has the first line of the file highlighted as if that's the current location in the source, but it cannot show the source for some reason.

I can proceed to step through the code, but I can't see anything.

However, if I find vendor.js in the list of sources in the developer tools sources file list then it opens as a separate source tab and I can see all my code. At this point I have two tabs labeled vendor.js, one with all my vendor assets and one with just those line quoted above.

I am guessing that there is something different between how my tests are served and how my app is served in the development environment that is confusing Chrome.

I am using the following versions of things:

Although I've poked around a bunch I don't really have any leads on where the problem is stemming from. Perhaps it's related to how testem is running the tests? Or could it be something that gets included in my tests has a messed up source map?

I appreciate any help or ideas.

0 投票
1 回答
1224 浏览

ember.js - 单一测试在 PhantomJS 中失败,但在 Chrome 和 Firefox 中有效

我在 Ember.js 1.10、Ember CLI 0.1.12 中有一个验收测试,它在 PhantomJS 上失败,但在 Chrome 和 Firefox 中运行良好。我已经尝试调试了 2 天,但我的想法已经不多了。测试的名称是用户在登录时可以查看仅登录页面。基本上,当您未登录并尝试访问classic路由时,例如/about您被重定向到经典路由start.loginbeforeModel挂钩:

当您打开start.login并且您将提供正确的名称和用户名时,将调用logIn操作:StartLoginController

其中调用以下操作ApplicationController

这即使在 PhantomJS 中也能正常工作。其他测试通过。正确调用操作,正确设置属性,正确设置 cookie。甚至beforeModel挂钩正确调用(或不调用)transitionTo方法。我认为 PhantomJS 的问题在于调用事物的一些异步顺序,但我已经尝试在许多地方包装Ember.run代码andThen。一点运气都没有。

testem.json

验收测试login-test.coffee(失败测试是最后一项):

最后从测试中输出:

我不认为classic.about是错误的来源,因为用classic资源的其他子路由替换它会导致相同的 PhantomJS 测试失败。

好的,看来问题在于模型ClassicRoute(使测试通过的评论):

0 投票
1 回答
185 浏览

ember-cli - 将 ember-cli 测试放入 pod

我想尝试在 pod 中放置测试,所以不是

我希望有

这似乎使 pod 得出了它们合乎逻辑的结论——即,将所有与 pod 相关的“事物”包含在 pod 中,而不是分散在目录结构中的其他地方。

我可以通过将src_files属性设置testem.json为 include来获取测试app/pods/**/*-test.js

但是,我遇到了 jshint 的问题。.jshintrcin具有tests诸如. moduleFor所以位于内部的测试tests通过 jshint 很好。但是,app有它自己的.jshintrc,它没有定义与测试相关的全局变量。所以 jshint 在app/pods. 我更愿意为与.jshintrc测试相关的文件保留一个单独的文件,但是如何将一个.jshintrc应用于测试文件而另一个应用于非测试文件?

更一般地说,是否有将测试文件放入 pod 结构的最佳实践或技巧?