【问题标题】:Libgdx test from gradle command line assets not found未找到来自 gradle 命令行资产的 Libgdx 测试
【发布时间】:2018-04-17 18:23:53
【问题描述】:

我有一个带有一些测试的 LibGDX 项目。结构如下:

  • core/src -> 用于我的 java 源代码
  • core/test -> 我的测试源代码
  • 核心/资产 -> 我所有的资产

当我从 eclipse 运行测试时,它们都变绿了,但是每当我尝试从 gradle 命令行 (./gradlew test) 运行它们时,我的 assets 文件夹都会出错。我相信这是因为测试不是从资产文件夹启动的,因为它是从 eclipse 启动的。
我怎么解决这个问题 ?有没有办法告诉 gradle 在运行测试时使用 core/assets 作为工作区目录?

这是我得到的错误:
com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load dependencies of asset: myasset.png

【问题讨论】:

  • 首先请原谅,因为我认为您是从旧的设置工具生成项目,对于基于 gradle 的设置,它将在核心中创建资产文件夹,所以您能否提供一些您尝试访问的代码这些资产
  • 有了上面描述的项目结构,假设我在 core/assets/MyTexture 下有一个名为“myTexture.png”的精灵,我在代码中的某处写了:assets.load("sprite/myTexture.png", Texture.class);(请注意我是如何省略“资产”文件夹的)。如果我从 Eclipse 启动测试,这将正常工作。但是从 gradle 命令行这将导致上述路径错误。为了让它在 gradle 下工作,我必须打电话给:assets.load("assets/sprite/myTexture.png", Texture.class); 它会在 gradle 下工作,但在 eclipse 中不再工作。
  • 这就是为什么我要问一种方法来告诉 gradle 从资产文件夹运行测试。还是我做错了?

标签: unit-testing gradle libgdx assets


【解决方案1】:

我找到了实现我想要的方法。我在这里为可能需要它的任何人发布我的解决方案。 gradle 中的测试任务有一个名为workingDir 的属性。所以我只需要将它设置到正确的文件夹。在您的项目(根文件夹)的 build.gradle 文件中,只需添加以下部分:

project(":core") {
    apply plugin: "java"
    // Add the following test section
    test{
       workingDir= new File("/assets")
    }
    // Rest of the file
}

就是这样!我的测试现在从命令行运行绿色。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 2021-10-16
    • 2019-07-29
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    • 2017-12-24
    相关资源
    最近更新 更多