2017-01-25 33 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