【问题标题】:How to execute JUnitTests in Runtime-Workspace (JUnit-Plugin-Test)?如何在 Runtime-Workspace (JUnit-Plugin-Test) 中执行 JUnitTests?
【发布时间】:2015-01-15 13:57:54
【问题描述】:

我遇到了 JUnit 测试的问题。我编写了一个 JUnitRunner,用于执行 WrapperTest。

WrapperTest 生成一个普通的 JUnit-Test 和一个所需的文件。如果我想执行生成的测试的方法,我的 Runner 在开发工作区中搜索“NeededClass”。

我正在 JUnit-Workspace 中生成所需的类,我希望测试使用这个生成的类文件,所以我可以在我的 Develop-Workspace 中删除这个文件。

那么,如何在 JUnit-Workspace 中执行生成的测试? (他会在 JUnit-Workspace 中查找需要的文件)

编辑:好的,我发现,这是一个 ClassLoader 问题... Develop Workspace 有另一个 ClassLoader 而不是 JUnit-Workspace,这会导致奇怪的错误,例如“类不是相同的类异常”( java.lang.ClassCastException: org.junit.runner.JUnitCore 不能转换为 org.junit.runner.JUnitCore)。看来我必须通过反射来解决这个问题,这很脏。

【问题讨论】:

    标签: java eclipse unit-testing junit junit-runner


    【解决方案1】:

    查看 Maven 及其 build lifecycle。您可以将正在执行的代码生成连接到 generate-test-sources 阶段,然后让它正常参与测试阶段。

    有关示例,请参阅 this question。

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
    • 我提供的答案与问题中提供的 OP 的详细程度大致相同。
    • 那又怎样?从某种意义上说,它仍然是一个仅链接的答案,因为您没有解释如何做任何事情 - 如果链接发生变化,答案将变得毫无用处。
    • 链接对我的回答并不重要。关键要素是研究 Maven 构建生命周期,以一种可以测试的方式连接代码生成。尽管我的回答很简短,但这并不意味着它有什么问题。如果 OP 在问题中提供了更多详细信息,我本可以给出更详细的答案。就目前而言,更详细的回答可能会落伍。
    • 我们必须同意不同。只是 FTR,我没有否决你的答案。
    猜你喜欢
    • 1970-01-01
    • 2021-04-30
    • 2017-01-23
    • 2020-03-30
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    相关资源
    最近更新 更多