问题标签 [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.

0 投票
1 回答
1438 浏览

testing - 如何使用 Velocity 修复此 websocket 连接错误?

我已经用全新的项目尝试过黄瓜和茉莉花,但我所有的测试都失败了。当我运行时:

我得到:

此故障来自使用 xolvio:cucumber 包的新应用程序。

当我查看镜像日志时,它以:

那么,这只是我的某种系统错误吗?我有最新的流星:1.1.0.2

我也意识到这个错误曾经是一个旧错误,现在被认为是在流星黄瓜回购中修复的。

有任何想法吗?

0 投票
1 回答
183 浏览

javascript - 将代码放在 Jasmine 测试 + Meteor 的正确目录中

我是 Jasmine 测试框架的新手,很想得到一些指导。在测试文件夹下,我有以下目录结构:

在这两个文件夹下,我有:

我对将代码放置在正确的文件夹中感到困惑。我所有的测试都与(大部分)在服务器上的 Meteor.methods 相关。我了解放置在“单元”测试文件夹下的测试无法访问任何 Meteor 代码并且需要实现存根,并且客户端文件夹中的测试测试客户端代码(类似于服务器文件夹)。然而,这是否意味着:

  1. 我对服务器 Meteor.methods 的所有测试都应该在服务器/集成上?
  2. /collections 文件夹中的方法(客户端和服务器都可以访问)可以在客户端或服务器中测试吗?
0 投票
1 回答
538 浏览

meteor - 使用 Jenkins CI 和 Velocity 测试 Meteor 应用程序

我环顾四周寻找答案,但无法正常工作。我的 Meteor 应用程序和 Jenkins 在 OS X 上本地运行。我遵循了这个答案

在此处输入图像描述

但构建失败,输出如下

在此处输入图像描述

我对 Jenkins 和 Meteor 缺乏了解显然是错误的,但我无法在网上找到解决方案。

我不得不使用/usr/local/bin/meteor,而不仅仅是meteor因为 Jenkins 用户似乎找不到流星命令。所以也许我在那里出错了。

0 投票
1 回答
178 浏览

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 运行不同的测试。如果您找到解决方案,那就太好了。

0 投票
1 回答
280 浏览

meteor - Meteor jasmine-client-integration 测试仅在应用程序在浏览器中物理启动时运行

当我尝试使用

我从 PhantomJS 得到以下输出

除非我在浏览器中打开应用程序然后测试完成,否则什么都不会发生。似乎与此已关闭的问题相同。我应该补充一点,此时我唯一的集成测试(以排除 PhantomJS 问题)是

我的版本是


更新

instanceof called on an object with an invalid prototype property错误似乎可以通过使用 PhantomJS 2 解决。

随后,我找到了一个简单的解决方法,即客户端集成测试未运行,我只需将客户端集成测试移动到客户端单元目录。然而,这似乎正是一种解决方法。我仍然想知道是什么导致了这个问题,以及如何在没有我的 hacky 解决方法的情况下解决它。

0 投票
1 回答
280 浏览

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

我错过了什么步骤?

谢谢。

0 投票
0 回答
147 浏览

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,但通过应用程序没用。

任何想法如何解决这个问题?

0 投票
1 回答
213 浏览

meteor - 在通过授权保护 mongo 后,使用 mocha 进行 Meteor Velocity 测试失败

使用参数保护 mongo 后--auth,我收到以下错误消息:

MongoError: 未在 mocha 上授权执行命令 { listIndexes: "users", cursor: {} }

mongo 在我的本地机器上的默认端口localhost:27017。google 和 stackexchange 搜索没有发现任何类似的东西,因此我们将不胜感激。

大概我需要做的就是授权给“mocha”数据库上的用户。用户是谁?

完整的堆栈跟踪:

0 投票
2 回答
1568 浏览

meteor - 有没有办法等待另一个 WebDriverIO 承诺链完成?

我正在尝试在 Cucumber 中构建一个测试步骤,该步骤将登录具有给定角色的测试用户。我的方法是尝试查看是否存在“退出”选项并单击它,然后尝试登录。问题是承诺结构并不能保证首先发生注销,并且由于我不能假设我总是首先登录,所以我需要一种方法来基本上等到发生这种情况后再继续。

我的测试步骤如下所示:

有没有办法在之后停止myBrowser.waitForVisible('#appSignOut')?我只是错过了预期的用途吗?

更新

我尝试了一种新方法,但仍然无法正常工作:

这里的逻辑是:

  1. #main_menu 可见时(页面已加载)
  2. 然后 - 如果存在#appSignOut,请单击它
  3. 然后 - 等待#appSignIn 变为可见,然后完成登录

我得到的错误是:

但我认为这些都不起作用。弹出式浏览器的速度太快了,我看不到发生了什么,而且 cucumber.log 也没有给我任何关于它在做什么的好的指示。

0 投票
0 回答
34 浏览

javascript - 为什么在一个 Jasmine 描述块中使用多个计算时,Tracker 的反应性没有准确地启动一半?

当用 Jasmine 测试反应性时,一些 Tracker 计算开始以一种非常有趣的方式表现:恰好一半的计算是反应性的,另一半不是。

我为测试这种行为所做的如下:

所以基本上:

  1. 将反应式初始化foofalse.
  2. 开始跟踪它,等待它到达,true以便将测试声明为done().
  3. 使用超时来foo.set(true)解决测试。
  4. 停止此计算,因为不再需要它。

现在,让我们用不同的变量做同样的事情:

这就是乐趣的开始。虽然这个测试是相同的代码但名称不同,并且具有完全相同的编写逻辑,但它失败了,因为计算跟踪栏永远不会重新运行

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函数中隔离测试时,这个问题神奇地消失了,请不要这样回答。