问题标签 [web-component-tester]
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.
javascript - 访问子元素数据的聚合物硒测试
在我有一个 firebase-login 元素
toggleLogin 调用的地方:
在我正在使用的 Polymer 测试套件中:
但是 Selenium 给了我以下错误:
长话短说,我如何单击按钮并检查模式弹出?
注意:Polymer 团队的测试如下:
由于他们将元素命名为 myEl 而不是 element 并寻找按钮标签而不是带有 btnLogin id 的标签,我觉得我的解决方案是合适的。我在这里做错了什么?
更新:
在查看绑定事件时,我仍然没有让事情正常进行。
代码:
上面的代码允许我越过这条线,但实际上并没有切换对话框。我不确定为什么。当我添加click()
而不是click
它时this.$.loginModal.toggle() is not defined
,我会遇到我一直在努力解决的错误。
更新:
仍然没有找到一个好的答案。正在研究一些可能有帮助的代码,并找到了想要了解其内容元素信息的子菜单元素。我将在下面包括他们的测试。
代码:
按照上面的示例,我尝试了以下操作:
不幸的是,我越来越loginModal.opened
不确定。loginModal.toggle()
给出切换不是函数错误。
更新:
我发现 bind 实际上并没有调用该函数。它仅将 绑定this
到新位置。因此,当我这样做时,btnLogin.click.bind(btnLogin)
它正在进行绑定,因此当我调用btnLogin.click()
它时,它将绑定到btnLogin
而不是 ... btnLogin
。因此,只调用btnLogin.click()
而不调用bind
函数是一样的。
既然已经解决了这个问题,我决定搞乱call
而不是bind
但我只是将其绑定this
到相同的范围,所以这没有帮助。然后我尝试btnLogin.click.call(element)
了,但它仍然给了我 this.$.loginModal.toggle 不是函数的错误。
javascript - 你如何测试需要加载 light dom 的元素?
我有一个元素:
和一个测试夹具:
我不确定在 light dom 初始化后如何运行我的测试。我试过听附加的事件,但它永远不会触发,因为在调用fixture() 之前我无法注册。我也尝试过同步测试,但测试在触发附加事件之前运行。
web-component - 如何模拟 HTML 导入以进行测试
我正在为我的自定义元素编写测试。我使用Web Component Tester,所以使用 Sinon.js 进行模拟会很棒。
我的自定义元素<link rel="import" href="something.html">
动态添加。
我如何存根内容something.html
?
teamcity - 让 Polymer Webcomponent Tester 在 TeamCity CI 中运行
作为我的 TeamCity 环境中的构建步骤,我需要为一组 web 组件运行我的所有单元测试(您可以假设 TeamCity 始终是最新的)。我不知道从哪里开始。任何建议将不胜感激。
javascript - Polymer.js Web 组件测试器无法找到本地 DOM 元素
这是我的财产声明:
我的 CSS:
我有一个测试夹具如下:
使用如下测试套件:
自定义元素的Local DOM如下:
我正在尝试获取:before
ID 为的伪元素,#icon
但 WCT 无法找到它,并且domEl
在测试套件中等同于null
.
我究竟做错了什么?
unit-testing - 对使用 firebase 的聚合物 Web 组件进行单元测试
我一直在尝试为使用最新版本的 Firebase 分布式数据库的聚合物 Web 组件配置离线单元测试。我的一些测试通过了,但其他的——看起来与通过的测试几乎相同——运行不正常。
我在 github 上建立了一个项目来演示我的配置,我将在下面提供更多评论。
示例: https ://github.com/doctor-g/wct-firebase-demo
在那个项目中,有两套测试工作正常。最简单的是offline-test
,它根本不使用 Web 组件。它只是表明可以使用 firebase 数据库的离线模式来运行一些单元测试。这个技巧的核心是suiteSetup
下面显示的方法——我从nfarina 在 firebase-server 上的工作中学到的技巧。
所有测试offline-test
通过。
下一个套件是wct-firebase-demo-app_test.html
,它测试同名的 Web 组件。该套件包含一系列单元测试,这些测试设置类似offline-test
并且通过了。遵循依赖注入的思想,wct-firebase-demo-app
组件有一个database
属性,将 firebase 数据库引用传递到该属性中,这用于进行所有 firebase 调用。这是套件中的一个示例:
我在组件中也有一些非常简单的方法,以尝试对我稍后将讨论的碎片进行三角测量。只要说这个测试通过就足够了:
并得到此实现的支持wct-firebase-demo-app
:
再一次,这些都过去了。现在我们进入了真正的困境。有一套针对另一个元素的测试x-element
,它有一个方法pushData
:
此方法的测试是其套件中唯一的测试:
这个测试没有通过。在运行此测试时,控制台会显示一条错误消息:
通过设置一些断点并遍历执行,在我看来这个错误是在调用之后once
但在触发回调之前出现的。再次注意,这不会发生在上述相同的测试结构中wct-firebase-demo-app
。
这就是我卡住的地方。为什么offline-test
和wct-firebase-demo-app_test
套件工作正常,但我得到这个 API 密钥错误x-element_test
?我唯一的其他线索是,如果我将有效的 API 密钥复制到我的initializeApp
配置中,那么我会得到一个测试超时。
更新:
这是运行测试时我的控制台日志的(拼凑在一起的)图像。:
为了说明下面 tony19 提出的问题,这里是控制台日志,只是pushData has an effect
注释掉x-element_test
了:
polymer - 如何使用 Polymer web-component-tester 运行特定测试?
在开发 Polymer Web 组件时,更具体地说,在添加额外测试时,每次我对测试进行调整时运行所有组件的测试会变得非常麻烦。
最简单的答案是注释掉不应该运行的测试,但这也会让人厌烦。
由于 web-component-tester 使用 Mocha,因此可能应该有某种方式来指示仅要运行一组特定的测试。定位一个特定的文件很容易,但是如何在一个文件中定位一个特定的测试呢?
polymer - JUnit 格式化测试输出
Jenkins 没有注意到我的测试用例在 Polymer 中运行,我不太确定如何生成正确的 JUnit 文件。使用web-component-tester如何生成 JUnit 格式的测试输出?
testing - Eslint 没有为 Polymer 元素运行 web-component-tester 测试
我正在尝试使用 eslint 对我的 Polymer 元素的 gulp 运行测试,但它似乎没有找到我包含的 browser.js 文件,因为它返回诸如“错误'套件'未定义 no-undef 之类的东西”。
我的 gulpfile.js :
这是我使用的测试套件:
最后是这个测试的 gulp 命令:
我对所有这些工具和一般的 Web 开发都很陌生,所以肯定有一些非常简单的东西我做得不对,但 24 小时后我似乎仍然找不到。
编辑:我确实安装了 eslint-plugin-html 并在我的 .eslintrc.json 上
polymer - 使用 Web 组件测试器调用存根、替换和固定需要什么顺序
我开始为我的应用程序中的一些元素构建一个测试套件。在顶层我有一个<my-app>
元素,在它的模板中它使用一个<my-session
元素来控制用户登录和一个<iron-media-query>
元素来定义在应用程序标题中使用的字符串多长时间。
为了更好地控制这两者的行为,我正在构建它们的特殊测试版本并使用该replace('my-session').with('test-session')
方法来改变它们。我还将使用该stub
功能来控制与测试套件的交互。
我已完整阅读了聚合物网站上的文档,但我无法确定您是否必须在致电之前或之后replace
使用.stub
fixture
有人可以建议