2017-01-25 32 views
5

我们在我们的应用程序中有两种产品口味,一种口味有一类(FlavorSpecificClass),其他类没有。我们对src/test文件夹中的FlavorSpecificClass进行了junit测试,当我们处于核心变体中时,该文件将无法编译,因为该类不存在于该变体中。如何进行单元测试(junit)Android Flavor/Variant - 类不存在

我找不到一种方法对每个变体进行单独的单元测试,并且代码不会在我们的核心变体中编译,除非我注释掉FlavorSpecificClass的引用。我怎样才能解决这个问题?

回答

3

假设你正在使用gradle。

因此,为此,您需要有另一个目录放在与“test”目录相同的位置。将该目录命名为'test [BuildVariant]' 并对该目录中的该构建变体进行测试。

假设你已经建立的变体调试,你的目录结构会是这个样子,如果你想测试的gradle使用那些只是在调试构建变量

-debug/java/... 
-main/java/... 
-test/java/[your tests] 
-testDebug/java/[your tests for build variant debug] 
+0

是类。我试过这个,它的工作原理是只在testDebug文件夹下运行测试时,当调试变体被选中,但由于只存在于调试中的类,主变体不编译的问题。该类仅在testDebug文件夹中的测试中提及,但主变体仍不能编译和运行。 – DDM

+0

然后,这意味着你的主要变体想要那个类在那里。您可能需要在所有变体中添加该类。其他变体可能没有操作方法。 –

+1

我们知道了。当我创建testDebug文件夹时,我通过选择新建 - >文件夹 - > Java文件夹继续创建java文件夹。这会自动在build.gradle中添加'src/testDebug/java'到我的主要sourceSet。有效的方法是使用New - > Directory创建java文件夹,然后build.gradle文件永远不会被修改。 – DDM