问题标签 [meteor-velocity]
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.
testing - 如何使用 Velocity 修复此 websocket 连接错误?
我已经用全新的项目尝试过黄瓜和茉莉花,但我所有的测试都失败了。当我运行时:
我得到:
此故障来自使用 xolvio:cucumber 包的新应用程序。
当我查看镜像日志时,它以:
那么,这只是我的某种系统错误吗?我有最新的流星:1.1.0.2
我也意识到这个错误曾经是一个旧错误,现在被认为是在流星黄瓜回购中修复的。
有任何想法吗?
javascript - 将代码放在 Jasmine 测试 + Meteor 的正确目录中
我是 Jasmine 测试框架的新手,很想得到一些指导。在测试文件夹下,我有以下目录结构:
在这两个文件夹下,我有:
和
我对将代码放置在正确的文件夹中感到困惑。我所有的测试都与(大部分)在服务器上的 Meteor.methods 相关。我了解放置在“单元”测试文件夹下的测试无法访问任何 Meteor 代码并且需要实现存根,并且客户端文件夹中的测试测试客户端代码(类似于服务器文件夹)。然而,这是否意味着:
- 我对服务器 Meteor.methods 的所有测试都应该在服务器/集成上?
- /collections 文件夹中的方法(客户端和服务器都可以访问)可以在客户端或服务器中测试吗?
meteor - 使用 Jenkins CI 和 Velocity 测试 Meteor 应用程序
我环顾四周寻找答案,但无法正常工作。我的 Meteor 应用程序和 Jenkins 在 OS X 上本地运行。我遵循了这个答案
但构建失败,输出如下
我对 Jenkins 和 Meteor 缺乏了解显然是错误的,但我无法在网上找到解决方案。
我不得不使用/usr/local/bin/meteor
,而不仅仅是meteor
因为 Jenkins 用户似乎找不到流星命令。所以也许我在那里出错了。
testing - 如何将 Stub 对象与 tinytest 和 meteorjs 一起使用?
这个周末我试图从我的流星应用程序中测试一个包“A”。这个包依赖于另一个定义所有集合的包“B”。所以包“B”公开了所有需要的集合。
包“A”公开了一个主对象,该对象具有一些使用“B”中公开的集合的方法。
我想用这样的代码替换一些集合:
但它失败了。这段代码在 tinytest.add 代码中是可以的,但是在包“A”的方法中,它仍然使用原始的 Collection 变量。我在构建文件夹中看到所有内容都是由构建系统重写的,所以我想知道在不依赖那些 Collection 变量的情况下测试我的代码的最佳方法是什么。我有一些想法,比如将这些变量存储在具有 get/set 方法的主对象中。当我进行测试时,它可能允许我改变一切。
感谢帮助
这是示例应用程序:https ://github.com/MeteorLyon/tutorial-package-dependancy-testing 按照 README.md 运行不同的测试。如果您找到解决方案,那就太好了。
meteor - Meteor jasmine-client-integration 测试仅在应用程序在浏览器中物理启动时运行
当我尝试使用
我从 PhantomJS 得到以下输出
除非我在浏览器中打开应用程序然后测试完成,否则什么都不会发生。似乎与此已关闭的问题相同。我应该补充一点,此时我唯一的集成测试(以排除 PhantomJS 问题)是
我的版本是
更新
该instanceof called on an object with an invalid prototype property
错误似乎可以通过使用 PhantomJS 2 解决。
随后,我找到了一个简单的解决方法,即客户端集成测试未运行,我只需将客户端集成测试移动到客户端单元目录。然而,这似乎正是一种解决方法。我仍然想知道是什么导致了这个问题,以及如何在没有我的 hacky 解决方法的情况下解决它。
meteor - Meteor:如何在 travis-ci 上使用 jasmine 测试来测试包?
我有一个流星包,它包含一些使用速度和茉莉花编写的测试。我尝试按照https://github.com/arunoda/travis-ci-meteor-packages中的描述添加 Travis CI 支持。但是,从日志文件看来,实际上没有运行任何测试。
日志文件提到了 Jasmine 测试,因此它可以识别这些测试。但它报告零测试
https://github.com/arunoda/travis-ci-meteor-packages中的说明是否仅适用于小型测试?
我使用的 .travis.yml 文件是: https ://github.com/sf-wind/meteor-template-elements/blob/master/.travis.yml
我错过了什么步骤?
谢谢。
angularjs - Meteor服务器单元测试——访问全局对象
我在共享 lib 目录中有一个文件:lib/functional.js
它将对象 F 附加到全局范围:
在应用程序中这工作正常,我可以通过 F.method1() 从任何地方访问 method1,服务器和客户端。
我还对通过的客户端进行了单元测试:
该控制器使用 F.method1,它工作正常。
但是在服务器中,当我尝试在单元测试中拨打电话时:
我收到此错误:
ReferenceError: F 未定义
/home/adam/apps/blockchess/server/lib/protocol.js:9:14:ReferenceError:F 未在 Object.protoRate 中定义(/home/adam/apps/blockchess/server/lib/protocol.js:9 :14) 在/home/adam/apps/blockchess/tests/jasmine/server/unit/backfeed/backfeedSpec.js:28:22
如果有帮助:我还注意到,如果我删除包装 F 函数的 IIFE:
我可以从服务器单元测试访问 F,但通过应用程序没用。
任何想法如何解决这个问题?
meteor - 在通过授权保护 mongo 后,使用 mocha 进行 Meteor Velocity 测试失败
使用参数保护 mongo 后--auth
,我收到以下错误消息:
MongoError: 未在 mocha 上授权执行命令 { listIndexes: "users", cursor: {} }
mongo 在我的本地机器上的默认端口localhost:27017
。google 和 stackexchange 搜索没有发现任何类似的东西,因此我们将不胜感激。
大概我需要做的就是授权给“mocha”数据库上的用户。用户是谁?
完整的堆栈跟踪:
meteor - 有没有办法等待另一个 WebDriverIO 承诺链完成?
我正在尝试在 Cucumber 中构建一个测试步骤,该步骤将登录具有给定角色的测试用户。我的方法是尝试查看是否存在“退出”选项并单击它,然后尝试登录。问题是承诺结构并不能保证首先发生注销,并且由于我不能假设我总是首先登录,所以我需要一种方法来基本上等到发生这种情况后再继续。
我的测试步骤如下所示:
有没有办法在之后停止myBrowser.waitForVisible('#appSignOut')
?我只是错过了预期的用途吗?
更新
我尝试了一种新方法,但仍然无法正常工作:
这里的逻辑是:
- #main_menu 可见时(页面已加载)
- 然后 - 如果存在#appSignOut,请单击它
- 然后 - 等待#appSignIn 变为可见,然后完成登录
我得到的错误是:
但我认为这些都不起作用。弹出式浏览器的速度太快了,我看不到发生了什么,而且 cucumber.log 也没有给我任何关于它在做什么的好的指示。
javascript - 为什么在一个 Jasmine 描述块中使用多个计算时,Tracker 的反应性没有准确地启动一半?
当用 Jasmine 测试反应性时,一些 Tracker 计算开始以一种非常有趣的方式表现:恰好一半的计算是反应性的,另一半不是。
我为测试这种行为所做的如下:
所以基本上:
- 将反应式初始化
foo
为false
. - 开始跟踪它,等待它到达,
true
以便将测试声明为done()
. - 使用超时来
foo.set(true)
解决测试。 - 停止此计算,因为不再需要它。
现在,让我们用不同的变量做同样的事情:
这就是乐趣的开始。虽然这个测试是相同的代码但名称不同,并且具有完全相同的编写逻辑,但它失败了,因为计算跟踪栏永远不会重新运行。
console.log
很好地展示了这一点:
foo 在它的计算中是:
false
foo 在它的计算中是:true
- 反应性开始了!
其计算中的 bar 是:false
[Nothing]
虽然很清楚 for 的计算foo
被重新运行,因此其测试已完成,但 for 的计算bar
永远不会失效,因此测试失败。
然而,这并不止于此。如果我们为一个新的反应变量(例如 )添加第三个测试用例baz
并遵循与之前相同的过程(与其他变量一起初始化它,在同一函数的末尾添加测试describe
),那么它就可以完美地工作了!
这里测试(1)
成功,测试(2)
失败,测试(3)
成功。
现在,如果我们添加第四个测试,cat
例如,按照相同的过程添加一个新的测试......那么测试(4)
将失败并显示以下日志。
foo 在它的计算中是
false
foo 在它的计算中是true
bar 在它的计算中是false
bar 没有重新运行并且失败
baz 在它的计算中是false
baz 在它的计算中是true
cat 在它的计算中是false
cat 没有重新运行并且失败
[Nothing]
foo
并且baz
已经对,而不是bar
和做出了反应cat
。
我已经和另外两个(第五个和第六个)一起做了,同样的结果:(5)
成功,(6)
失败。
“奇数”测试成功,“偶数”测试失败。
完整复制代码:
为什么会这样?
我怎样才能解决这个问题,同时将所有这些反应变量保持在同一个describe
函数中?
我试图添加嵌套describe
函数但没有成功。
在自己不相关的describe
函数中隔离测试时,这个问题神奇地消失了,请不要这样回答。