Unit testing 找不到来自gradle命令行资源的Libgdx测试

Unit testing 找不到来自gradle命令行资源的Libgdx测试,unit-testing,gradle,libgdx,assets,Unit Testing,Gradle,Libgdx,Assets,我有一个带有一些测试的LibGDX项目。结构如下: core/src->用于我的java源代码 核心/测试->用于我的测试源代码 核心/资产->我的所有资产 当我从eclipse运行测试时,它们都会变成绿色,但是每当我试图从gradle命令行(./gradlew test)运行它们时,我都会在assets文件夹中得到一个错误。我认为这是因为测试不是从assets文件夹启动的,而是从eclipse启动的。 我怎样才能解决这个问题?在运行测试时,有没有办法告诉gradle使用core/asset

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

  • core/src->用于我的java源代码
  • 核心/测试->用于我的测试源代码
  • 核心/资产->我的所有资产
当我从eclipse运行测试时,它们都会变成绿色,但是每当我试图从gradle命令行(./gradlew test)运行它们时,我都会在assets文件夹中得到一个错误。我认为这是因为测试不是从assets文件夹启动的,而是从eclipse启动的。
我怎样才能解决这个问题?在运行测试时,有没有办法告诉gradle使用core/assets作为工作区目录

下面是我得到的错误:
com.badlogic.gdx.utils.GdxRuntimeException:com.badlogic.gdx.utils.GdxRuntimeException:无法加载资产的依赖项:myasset.png

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

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

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

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

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

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

首先,请原谅,我以为您是从旧的安装工具生成项目的,对于基于gradle的安装,它将在core中创建assets文件夹,因此,您可以提供一些代码,从中尝试访问具有上述项目结构的资产,比如我在我编写的代码中的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从assets文件夹运行测试。或者可能我做错了?首先,请原谅,因为我认为您是从旧的设置工具生成项目,对于基于gradle的设置,它将在core中创建assets文件夹,因此您可以提供一些代码,从中使用上述项目结构访问这些资产,比如我有一个名为“myTexture.png”的精灵在我的代码中的core/assets/MyTexture下,我写到:
assets.load(“sprite/MyTexture.png”,Texture.class)(注意我是如何省略“资产”文件夹的)。如果我从eclipse启动测试,这将很好地工作。但从gradle命令行,这将导致上述路径错误。为了让它在gradle下工作,我必须调用:
assets.load(“assets/sprite/myTexture.png”,Texture.class)它将在gradle下工作,但在eclipse中不再工作。这就是为什么我想问一种方法,告诉gradle从assets文件夹运行测试。或者我做错了?