2017-01-23 52 views
2

我有一個託管的Eclipse項目,它使用GNU ARM嵌入式工具鏈編譯ST微控制器。我現在想要做的是,單元測試該項目中的代碼。我想用於單元測試的框架是Google Test。如何在Eclipse中爲受管理的ARM C項目添加單元測試?

我試圖創建單元測試第二Eclipse項目中,使用標準的GNU工具鏈。就像這樣:

PROJECT1(ARM)
| --- SRC

Project2中(桌面)
| ---測試

與的問題是雙重的:

  1. 第二個項目無法訪問第一個項目的源代碼(顯然)。因此我試圖從第一個項目創建一個靜態庫用於測試目的,這導致了第二個問題。
  2. 從第一個項目創建的庫是不是第二個項目兼容,因爲它使用了GNU ARM嵌入式工具鏈,而不是標準GNU工具鏈。

要解決第二個問題,我在第一個項目中添加了一個構建配置,嘗試使用正確的工具鏈進行編譯。但這並沒有解決。

我走了另一條路徑是在同一項目中的實際代碼單元測試和使用一個構建配置來創建單元測試的可執行文件。事情是這樣的:

項目
| --- SRC
| ---測試

那沒有工作,以及和它種好像這是同樣的問題,與第一種方法無論如何。

問題本身並不是單元測試。我知道如何使用Google Test在eclipse中測試常規的C項目。

如何單元測試通常在Eclipse中管理的項目接洽的嵌入式項目?它有可能嗎?如果是這樣,這是一個好辦法,或者我應該寫我自己的makefile來完成這項任務嗎?

回答

2

要做到這一點使用eclipse自動生成的makefile,你必須創建一個Build配置爲每個製作(一個目標,一個用於臺式機),因此:

  • PROJECT1,將不得不建成兩個平臺的靜態庫。它將以獨立於平臺的方式包含您的應用程序。
  • Project2的將不得不只有建立桌面,將有測試和測試爲主,也將連接到Project庫。
  • 甲項目3(與主及依賴於平臺的代碼)將必須被創建,並建立一個小精靈或箱,連接到Project庫目標平臺。

如果您決定在目標平臺上運行測試,它會變得更加複雜;

我在那裏你可以得到基於兩個例子/模板,但他們偏食是不相關的:

  1. 建立與生成文件與MSP430工具鏈,CppUTest作爲測試框架。 https://github.com/felipe-lavratti/UnitTestingEmbeddedC-Demo1

  2. 構建使用Scons,測試在兩個平臺,依賴和CppUTest作爲單元測試框架運行。 https://github.com/felipe-lavratti/UnitTestYoutubeVideos

相關問題