2017-01-23 75 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

相关问题