问题标签 [testng]

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 投票
16 回答
61299 浏览

java - @BeforeClass 和继承 - 执行顺序

我有一个抽象基类,我将其用作单元测试的基础(TestNG 5.10)。在这个类中,我为我的测试初始化​​整个环境,设置数据库映射等。这个抽象类有一个带有@BeforeClass注释的方法来进行初始化。

接下来,我使用具有@Test方法和@BeforeClass方法的特定类扩展该类。这些方法对环境进行特定类的初始化(例如,将一些记录放入数据库)。

如何强制执行带@BeforeClass注释的方法的特定顺序?我需要在扩展类之前执行抽象基类中的那些。

例子:

预期顺序:

实际订单:

0 投票
2 回答
9739 浏览

java - 使用 Spring @Transactional 进行 TestNG 多线程测试

我正在使用 TestNG 使用 AbstractTransactionalTestNGSpringContextTests 作为基类来测试持久性 Spring 模块(JPA+Hibernate)。@Autowired、@TransactionConfiguration、@Transactional 的所有重要部分都可以正常工作。

当我尝试使用 threadPoolSize=x, invocationCount=y TestNG 注释在并行线程中运行测试时,问题就出现了。

...有人遇到过这个问题吗?

这是代码:

更新:似乎 AbstractTransactionalTestNGSpringContextTests 仅在所有其他测试线程都没有获得自己的事务实例时才为主线程维护事务。解决这个问题的唯一方法是扩展 AbstractTestNGSpringContextTests 并以编程方式维护事务(而不是 @Transactional 注释)每个方法(即使用 TransactionTemplate):

0 投票
2 回答
2306 浏览

java - 为 TestNG 方法传递对象参数?

这是我的情况。

在运行测试之前,在 beforesuite 中,我实例化了一堆“环境对象”,这些对象是根据我的环境配置文件创建的。我的测试实际上将使用这些环境对象。问题是我怎样才能将它们传递给测试。

您的第一个冲动可能是使用数据提供程序,它会将正确的对象传递给测试。问题是数据提供者必须知道如何引用正确的对象然后传递它们。就目前而言,环境对象只能通过名称(字符串->对象)引用

我的另一个选择是向测试方法传递一个引用正确对象的字符串。但这和上面有同样的问题。

这两个选项都会产生很多依赖和问题。我还必须对键所指的类型做出很多假设。

这个问题大部分源于我滥用TestNG的事实。我真正需要的是我自己的控制器,它可以在传递适当的环境对象的同时实例化我的测试对象。

我正在研究 testng 的 TestRunner 界面,但我不确定这是否可行。

任何和所有的帮助表示赞赏。埃里克

0 投票
3 回答
3313 浏览

java - 是否可以在 Netbeans 6.8 中使用 TestNG 插件?

我下载了TestNG NetBeans 插件并尝试将其安装在我的 NetBeans 6.8 中。我正在运行 NetBeans IDE 6.8(内部版本 200912041610)。

当我单击安装时,我收到以下消息:

一些插件需要安装插件外部执行支持。在 >= 1.19 版本中请求插件外部执行支持,但仅找到 1.18.1。以下插件受到影响:TestNG Support

有些插件需要安装插件 Common Test Runner API。在 >= 1.13 版本中请求插件 Common Test Runner API,但仅找到 1.12.1。以下插件受到影响:TestNG Support

某些插件需要安装插件实用程序 API。在 >= 8.0 版本中请求插件实用程序 API,但仅找到 7.31.2.1。以下插件受到影响:TestNG Support

有些插件需要安装插件 org.openide.util.lookup。插件 org.openide.util.lookup 在 8.0 版本中被请求。以下插件受到影响:TestNG Support

一些插件未安装以避免潜在的安装问题。

是否可以在 Netbeans 6.8 中使用 TestNG 插件?

插件管理器似乎甚至不知道任何依赖插件。TestNG 插件是针对 beta 版还是实验版构建的?我已将所有插件更新到最新版本。


更新

我继续从 Netbeans 6.8 分支构建模块。现在可以正常安装了。不幸的是,当我运行测试时,我可以看到 ant 输出,但 TestNG 视图显示“未执行任何测试”。我会继续摆弄它,看看我能不能让它工作。

0 投票
2 回答
753 浏览

testing - TestNG 数据提供者大小

是否可以在运行时获取 TestNG DataProvider 数组中的元素数量?

0 投票
3 回答
5606 浏览

selenium - 使用 selenium.captureScreenshot 获取黑色图像

我正在使用 testng 执行 selenium 测试,这些测试是通过 hudson(使用 ssh 连接)在具有 Selenium RC 的远程系统上启动的。远程系统是安装了 MKS Toolkit 的 windows xp,因此是 ssh。测试不作为 Windows 服务执行。

我试过同时使用 captureScreenshot 和 captureEntirePageScreenshot 方法。第一个总是产生黑色图像。第二个创建了正确的屏幕截图,但它仅适用于 Firefox,我们的测试通常在 Firefox 上通过而在其他浏览器中失败,因此为其他浏览器(主要是 IE 和 Safari)捕获屏幕截图至关重要。测试并行运行,同时打开许多浏览器窗口。我不确定这是否是导致问题的原因。任何想法将不胜感激。

0 投票
3 回答
7701 浏览

java - TestNG 中的默认侦听器是什么,我在哪里可以找到这个列表?

我很想知道 TestNG 中的默认侦听器是什么。我在 Ant 任务上看到了一个用于 useDefaultListeners 的 bool 属性,但我想知道这些是什么以及在哪里可以找到它们。

0 投票
1 回答
1662 浏览

java - 单元测试框架 - TestNG 使用可配置的值来定义 threadPoolSize

我正在挖掘一点TestNG框架。

我在我的测试用例中使用注释来配置线程值,例如:

这个想法是在配置文件中配置这些值,并且这些值应该传递给所有测试。

所以我需要从配置条目中更改这些值或通过 unitTest 构造函数传递这个值,但 TestNG 只接受常量值。

任何提示/想法?

0 投票
3 回答
5335 浏览

java - Servlet 单元测试

目前我正在使用 TestNG 框架来测试应用程序业务逻辑,我最近添加了一些 Servlet 类。

如何在 TestNg 框架中对这些 Servlet 类进行单元测试?

0 投票
3 回答
33561 浏览

junit - 使用 TestNG 进行 Spring 依赖注入

Spring 对 JUnit 的支持非常好:使用RunWithandContextConfiguration注释,事情看起来很直观

该测试将能够在 Eclipse 和 Maven 中正确运行。我想知道TestNG是否有类似的东西。我正在考虑转向这个“下一代”框架,但我没有找到与 Spring 进行测试的匹配项。