【问题标题】:Is there a way to weave jUnit tests with AspectJ being in two different projects?有没有办法在两个不同的项目中使用 AspectJ 来编织 jUnit 测试?
【发布时间】:2013-04-11 21:54:21
【问题描述】:

我试图在一个 java 项目中的 JUnit 测试中拦截 webdriver 方法。我用 Aspects 创建了另一个项目,但无法将它们集成在一起工作。 基本上我需要在测试进行时在控制台上打印消息。

谁能指出我不使用 Spring 的任何方向? (搜索网络提供了大量的 Spring 教程)。 我正在使用安装了 AJDT 的 Eclipse Juno。

谢谢!

【问题讨论】:

    标签: eclipse junit aspectj ajdt


    【解决方案1】:

    为了将一个项目编织到另一个项目中,您需要将切面放置在测试项目的切面路径上。为此:

    1. 将您的测试项目转换为 AJ 项目
    2. 项目 -> 属性 -> AspectJ 构建 -> 方面路径
    3. 添加方面项目
    4. 完整版本

    这应该可以。或者,如果您无法将测试项目转换为 AJ 项目,请将测试项目添加到方面项目的 In 路径中。然后从方面项目的类文件中启动测试。

    更多关于inpath和aspect path的信息在这里:http://eclipse.org/aspectj/doc/released/devguide/ajc-ref.html

    【讨论】:

    • 感谢安德鲁,这很有效!我现在遇到了其他问题,我遇到了 stackOverflow 异常,但我会尝试解决这个问题。如果不是,那将是另一个问题。非常感谢!
    • 我很可能会说,您在自己的建议中提供建议。您可能必须像这样在切入点中添加一个子句:&& !cflow(adviceexecution())。见eclipse.org/aspectj/doc/released/progguide/…
    • 伟大的安德鲁!非常感谢!只需把否定!cflow 和完美的工作!谢谢!
    • @AndrewEisenberg 我该怎么做这部分:“然后从你的方面项目的类文件中启动测试。”我的 aspectProject 在其 bin 文件夹中创建 .class 文件。有没有办法通过eclipse来运行它?还是仅仅通过 CLI?对不起挖坟。只是不认为我的问题需要一个完整的问题。谢谢。
    • 测试项目是AJ项目吗?您是否将原始项目添加到测试项目的方面路径?如果是这样,您应该会在测试项目中看到原始项目的类文件。
    猜你喜欢
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    相关资源
    最近更新 更多