使用 maven-surefire 运行测试时,Spring-Autowiring 在 @BeforeClass 之后发生

2024-01-02

我在依赖注入(Spring 自动装配)和 maven-surefire 方面遇到一些问题。 当使用 TestNG 在 eclipse 中运行时,以下测试可以正常工作: 服务对象被注入,然后@BeforeClass- 方法被调用。

@TransactionConfiguration(defaultRollback=false)
@ContextConfiguration(locations={"/testContext.xml"})
public class MyServiceTest extends AbstractTransactionalTestNGSpringContextTests {


@Autowired
private MyService service;

@BeforeTest
public void setup() {
    System.out.println("*********************"+service);
    Assert.assertNotNull(service);
}

但是,当我使用 maven-surefire 运行相同的测试用例时,首先调用 setup() ,这会导致测试失败:

[INFO] --- maven-surefire-plugin:2.7.2:test (default-test) @ myserver ---
[INFO] Surefire report directory: D:\...
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
**************************null
2011-03-04 11:08:57,462 DEBUG  ionTestExecutionListener.prepareTestInstance  - Performing dependency injection for test context [[TestContext@1fd6bea...
2011-03-04 11:08:57,462 DEBUG  ractGenericContextLoader.loadContext          - Loading ApplicationContext for locations [classpath:/testContext.xml].

我怎么解决这个问题? 如果我更换@BeforeClass with @Test它在 Maven 中的工作方式与 TestNG 的 eclipse 插件中一样。

maven-surefire-插件:2.7.2

Eclipse:Helios 服务版本 1

jdk1.6.0_14

测试NG:5.14.10


另外,直到这个问题 https://jira.springsource.org/browse/SPR-4072已修复,如果在遵循前面的建议后仍然无法正常工作,或者您不希望在每个方法之前执行代码,则将以下代码添加到您的测试类中:

@Override
@BeforeSuite
protected void springTestContextPrepareTestInstance() throws Exception {
    super.springTestContextPrepareTestInstance();
}

这可以确保 Spring Context 在执行 @BeforeClass 方法之前准备好。

*注意,我发布了这个答案,因为在标题中您询问了 @BeforeClass,即使您的示例代码中没有使用 @BeforeClass。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 maven-surefire 运行测试时,Spring-Autowiring 在 @BeforeClass 之后发生 的相关文章

随机推荐

  • t-sql获取2个日期之间的所有日期[重复]

    这个问题在这里已经有答案了 可能的重复 获取日期范围内的日期 https stackoverflow com questions 271595 getting dates between a range of dates 假设我有 2 个日
  • 如何检查变量是数组还是对象?

    为了反序列化 json 对象 我必须定义一个父类 其中包含子类的一个对象或对象数组 如果检索到对象 则它必须是一个对象 如果从 json 检索数组 则它必须是对象数组 JSON 数组对象 y x data 28 data 56 data 8
  • C++ 十六进制字符串到无符号整数[重复]

    这个问题在这里已经有答案了 可能的重复 C 将十六进制字符串转换为有符号整数 https stackoverflow com questions 1070497 c convert hex string to signed integer
  • IE 浏览器缓存和 jQuery 表单插件

    就像我之前的许多迷失的灵魂一样 我在 Ajax 表单提交和 IE 浏览器缓存的蛇坑中挣扎 我正在尝试使用 jQuery 表单插件编写一个简单的脚本来 Ajaxify Wordpress 评论 它在 Firefox Chrome Safari
  • 如何使用php从目录中删除文件

    从标题中您可以看到我正在寻找一种从不同目录中删除文件的方法 我在这个主题上能找到的就是 unlink 但是从我在文档中读到的内容以及测试该函数来看 它会从您放入的代码中删除文件名 让我觉得这与关闭文件非常相似 我想做的实际上是使用代码删除文
  • 在传递给非托管代码之前固定可更新结构?

    我使用一些旧的 API 需要将结构指针传递给异步运行的非托管代码 换句话说 在我将结构体指针传递给非托管代码之后 非托管代码复制该指针并立即返回 非托管代码可以在后台的另一个线程中访问该结构 我无法控制在另一个线程或线程本身中运行的非托管代
  • SQL Server 2008 CPU 使用率高

    我们有一个 Windows 2008 R2 Server 其中有一个 SQL Server 2008 该服务器有多个 net 站点 其中包含 SQL Server 数据库 目前 我们的平均 CPU 使用率为 95 其中大部分是由 SQL S
  • 如何在Python中使用Flask解决403错误?

    我在mac中使用python Flask制作了一个简单的服务器 请找到下面的代码 from flask import Flask app Flask name app route methods GET POST def hello pri
  • 循环遍历数据表

    出色地 我有一个包含多列和多行的数据表 我想动态循环数据表 基本上输出应该如下所示 不包括大括号 Name DataColumn Tom DataRow Peter DataRow Surname DataColumn Smith Data
  • Spark迭代HDFS目录

    我在 HDFS 上有一个目录 我想迭代这些目录 有没有简单的方法可以使用 SparkContext 对象对 Spark 执行此操作 您可以使用org apache hadoop fs FileSystem https hadoop apac
  • Stack(int = 10),这个语法是什么意思(C++)?

    template
  • C++/CLI 前向声明

    我有一个标题 如下所示 namespace Dummy ref class ISYSession namespace Afw
  • TFS 向[请求者]用户生成电子邮件警报

    这可能吗 我和我的一位同事正在寻找这种解决方案一段时间 但我们在 Google 上找不到类似的解决方案 事情很简单 当 Requested By 用户破坏了 TFS 2010 上的构建时 我们希望通过电子邮件自动提醒他或她 我们如何才能做到
  • 如何将通知号码添加到按钮图标?

    我正在尝试使用 PyQt5 制作 GUI 它将有一个带有图标的通知按钮 我想在图标上添加一个带有通知数量的小气泡 如果无法提供数字 我想使用红点作为备用方法 但是我应该如何跟踪新通知 如通知侦听器 并在窗口运行时更改图标 我一直在谷歌上搜索
  • c# itextsharp PDF 创建,每页带有水印

    我正在尝试使用 itextsharp Java itext 的 C 端口 以编程方式创建多个 PDF 文档 每个页面上都带有水印 我可以在使用 PdfStamper 创建文档后执行此操作 然而 这似乎涉及重新打开文档阅读它 然后创建一个每个
  • 为什么存在 REP LODS AL 指令?

    换句话说 在任何情况下我可能需要这个指示吗 根据英特尔指令手册 该指令的作用如下 将 E CX 字节从 DS E SI 加载到 AL 以 NASM 为例 section data src db 0 1 2 3 section code mo
  • 如何将自定义 Jupyter 内核放置在虚拟环境中?

    我有一个自定义 Jupyter 内核 它使用使用 matplotlib 样式表的自定义 IPython 配置文件运行 IPython 我知道要正常运行它 我会输入 config matplotlib stylelib 中的 matplotl
  • 在 C# 中计算重复日期的正确方法

    在我的项目中 我需要计算重复事件的日期 一开始我只有一个开始日期 时间以及该事件必须如何重复的信息 Every Day Every Week Every 2 Weeks Every 3 Weeks Every Month Every 2 M
  • 如何使用 Nokogiri::XML::Builder 创建元素名称中带有连字符的 XML?

    我正在尝试使用 Nokogiri 构建 XML 文档 有些元素中有连字符 这是一个例子 require nokogiri builder Nokogiri XML Builder new do xml xml foo bar hello e
  • 使用 maven-surefire 运行测试时,Spring-Autowiring 在 @BeforeClass 之后发生

    我在依赖注入 Spring 自动装配 和 maven surefire 方面遇到一些问题 当使用 TestNG 在 eclipse 中运行时 以下测试可以正常工作 服务对象被注入 然后 BeforeClass 方法被调用 Transacti