问题标签 [test-framework]
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.
c# - 我为基于 Selenium SpecFlow 的 Visual Studio 解决方案使用什么项目类型
我正在使用 SpecFlow、SpecFlow+ 和 Selenium WebDriver 为我们的应用程序构建一个测试自动化项目。已经浏览了一些教程,每个教程都有不同的观点。
- SpecFlow.org 说在创建解决方案后使用 MSTest(.NET 代码)或单元测试(.NET Framework)
- Selenium 的其他教程使用类库 (.NET Framework) 或单元测试 (.NET Framework) https://saucelabs.com/resources/articles/getting-started-with-webdriver-in-c-using-视觉工作室
- 还有人说使用控制台应用程序(.NET Framework) https://www.guru99.com/selenium-csharp-tutorial.html
那么任何人都可以告知在同一个 VS 2019 解决方案中与 SpecFlow 项目一起使用的最佳项目类型是什么以及与 Selenium 项目一起使用什么?
另外,我应该将主要项目作为 SpecFlow 并将添加的项目作为 Selenium(反之亦然)吗?
有没有人用我可以看看的 2 个项目完成了类似的解决方案?
selenium-webdriver - 没有测试运行器的 Selenium WebDriver?
我不确定这个问题是否会因为它太新手而被关闭,但我想我还是会试一试。
我目前正在开发一个 Selenium 自动化框架,虽然看起来构建良好,但它通过生成线程来运行它的代码。(该框架是专有的,所以我无法共享代码)
该框架不使用 JUnit 或 TestNG 之类的测试框架来运行“测试”,而是使用线程方法来运行。aka,读取数据表、实例化和执行驱动程序、报告结果等的方法是通过启动一个线程来执行的,该线程的类在运行时代码的不同位置实例化。
我担心的是:虽然它在本地运行良好,提供报告和你有什么,它不能做什么,由于它没有使用测试运行器运行,它无法通过或失败“测试”。因此,在将其放在构建管道上时,“测试”不会被执行,因为可以说没有“测试”,从而使其在 CI/CD 上失去它的汁液,就报告构建管道而言事关成败。
我的担忧是否合理/不合理?为什么?有没有解决方法?投资回报率是多少?
欢迎资源或链接,欠啤酒!!:-)
干杯,
- 丹麦语
automated-tests - 我们可以在不使用元素定位器的情况下自动化 Web 应用程序/移动应用程序吗
这对我来说很震惊,作为提供服务的组织之一,他们通过自己的框架在不使用任何元素定位器的情况下进行自动化,并且他们承诺也支持 Web、移动 iOS 和 android……。作为一种用途,您只想定义 BDD 场景以及任何一个操作,例如选择、单击、等待……</p>
示例:我想登录并阅读电子书
作为用户,我想在访问其中一本书时登录,然后我可以阅读这本书
这里我们需要提供用户名:密码:书名'选择'动作
是否可以在不使用 Xpath、css、id、tag ......任何定位器的情况下处理测试自动化?
如果有人有任何信息,请告诉我……如果这是正确的,那么为什么我们要使用许多定位器,许多工具……?
是不是叫SAAS模型自动化?
java - 测试框架应该驻留在 Maven 构建的哪个位置 - src/test/java 或 src/main/java?
我从这个网站上以前的答案了解到,对于 Maven 构建:
src/main/java
将部署到生产中,而src/test/java
不会。src/main/java
包含主应用程序,而src/test/java
将包含测试主应用程序的代码
现在我的问题是,在编写测试框架时,哪种方法更好/更差:
- 测试框架本身将是主要应用程序 - 因此它将驻留在
src/main/java
? - 测试框架将仅用于测试主应用程序 - 因此将驻留在
src/main/java
?
不知何故陷入了正确地可视化这一点 -
方法 1似乎是正确的,因为测试框架将是构建的主要目的,因此这将是主要应用程序。
但是不知何故,我无法想象将测试框架部署到生产环境中。
方法 2似乎是正确的,但是如果主要目的是编写一个测试框架,那么里面会发生什么
src/main/java
?对于我的测试框架应用程序,它会是空的还是不存在的?
对此的任何建议都会有所帮助。
caching - 缓存回归测试
我想测试为 RISC-V 处理器构建的缓存。我正在为缓存寻找一个开源回归测试框架。是否有任何标准的缓存测试框架?如果没有,我应该如何进行?我需要验证缓存的一致性。我需要一些自我验证或共同模拟的环境。
python - 在将 pytest v3.0.7 升级到 v6.2.4 时面临 pytest 夹具范围内的功能问题
问题:在将我的代码从 pytest v3.0.7 升级到 v6.2.4 时,我遇到了功能问题。这意味着,v6.x 中的代码行为与 v3.x 中的代码行为不同。pytest v3.x 和 v6.x 中的fixture范围不一样
此问题背后的原因:在最新的 pytest 版本中,pytest 固定装置范围的工作方式发生了变化。早些时候,在 v3.x 中,我看到函数作用域在会话作用域被允许之前被执行。但是,在 v6.x 中,会话范围严格在函数范围之前执行。参考1和参考2
因此,升级 pytest 版本后,我的代码功能已经完全改变。作为一个遗留的测试框架,我不能那么容易地交换范围,因为很多插件/依赖代码会显示出意外的行为。
是否有任何解决方法可以保持执行与以前相同?所以,基本上我希望函数作用域在 v6.x 的 pytest 固定装置内的会话作用域之前执行。
例如,
使用 pytest v.3.0.7 执行上述代码时,将断言 True(测试通过)。但是,对于 pytest v6.2.4,它会抛出一个错误,因为范围为“会话”的固定装置将首先执行,然后是范围为“功能”的固定装置。现在,我想要一种解决方法或修复方法,使测试将在与 pytest v6.2.4 相同的场景中通过,并且由于前面提到的原因,我无法更改范围。
elasticsearch - 编译elasticsearch5.2.1源码出错
我在编译 ES 源代码时遇到了一些困难。
1.我从https://github.com/elastic/elasticsearch/tree/v5.2.1获得了 elasticsearch-5.2.1 源代码。2.我解压了elasticsearch-5.2.1.zip。3.我使用“gradle build”命令在elasticsearch-5.2.1的根目录下构建。4.我的gradle版本是“Gradle 3.3”,java版本是“java 1.8.0_271”。我的操作系统是ubuntu 20.04。
当我在elasticsearch-5.2.1的根目录下运行“gradle build”命令构建。结果是:</p>
''' FAILURE:构建失败,出现异常。
- 出了什么问题:任务':test:framework:test'执行失败。
有测试失败:23 个套件,132 个测试,4 个失败,3 个被忽略(3 个假设)[种子:121BC3D9A1F658B1]
- 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。
构建失败'''
谁能帮我解决这个问题?非常感谢
elasticsearch - Elasticsearch5.2.1源码编译报错
我在编译 ES 源代码时遇到了一些困难。
1.我从https://github.com/elastic/elasticsearch/tree/v5.2.1获得了 elasticsearch-5.2.1 源代码。
2.我解压了elasticsearch-5.2.1.zip。
3.我使用“gradle build”命令在elasticsearch-5.2.1的根目录下构建。
4.我的gradle版本是“Gradle 3.3”,java版本是“java 1.8.0_271”。我的操作系统是ubuntu 20.04。
当我在elasticsearch-5.2.1的根目录下运行“gradle build”命令构建。结果是:</p>
'''
'''
谁能帮我解决这个问题?非常感谢
go - 在詹金斯的远程服务器中找不到 go-junit-report 但在本地詹金斯它工作正常
我正在运行 golang 测试用例并通过以下命令将测试结果保存到 testreport.xml。 去测试-v ./testqa | go-junit-report > testqa/testreport.xml
其中 testqa 是我的测试文件夹,其中包含框架代码、testreport.xml 文件和测试文件。
jenkins 读取的 xml 文件并使用 go-junit-report 模块,我将这些结果显示给 jenkins UI。
所以有两种情况
在我的本地工作区上层命令中运行的 Jenkins 在本地工作区上运行的本地 Jenkins 中运行良好。它完美地填充了该 xml 文件并正确显示结果。
我还需要将 go-junit-report 配置为项目远程服务器。项目工作区,我这里使用的是 Github url。
如果我运行此命令 >> go test -v ./testqa,测试在公司的 jenkin 服务器中运行良好
但是当我使用这个命令进行测试报告时>>> go test -v ./testqa | go-junit-report > testqa/testreport.xml
我得到的错误是
/tmp/jenkins9406057064778860048.sh: 5: go-junit-report: 未找到