1

简短:如何使用带有 biicode 的仅标头库?

:当我尝试构建一个块时,它包含示例目录,即使我尝试在已发布块的 biicode.conf 中显式设置依赖项。

Long:我正在尝试使用 biicode 启动并运行统一框架。

Unity 作为 C 的单元测试框架非常棒,因为您不需要编译任何库。如果你自己做模拟,你甚至不需要运行任何脚本——.c你的编译中只包含一个文件,你就是黄金。

我已将 git repo 发布到我的 biicode 块paulbendixen/Unity中,并且由于除了应包含的标头随附的 c 文件之外不需要任何编译步骤,因此无需执行任何其他操作。

但是,当我包含文件时,使用#include "paulbendixen/Unity/src/unity.h"执行 bii 时出现错误cpp:build

Code.c:2:28: fatal error: ProductionCode.h: No such file or directory
#include "ProductionCode.h"

这是在示例文件夹中,因此不应编译,当我只想使用单元测试部分时。将 [dependencies] 更改为包含unity.h = unity.c unity_internals.h也无济于事。

我很确定问题应该在 中解决Unity/biicode.conf,但我无法在任何地方找到该文件的完整描述。

Unity 库的简单性应该使其成为 bii 等构建系统的理想选择,但设置起来似乎相当复杂。

如果有帮助,我使用了简单的布局和-r [github for throwtheswitch]选项

4

1 回答 1

2

事情没那么简单。Unity 使用 Rakefiles 来构建和运行测试,它们有很多配置。快速将其上传到 biicode 可以做的只是忽略测试并仅发布文件。这可以通过编写一个包含以下内容的ignore.bii文件来完成:

docs/*
test/*
examples/*
*test*

写到biicode.conf,唯一需要的配置是包含路径:

[paths]
    src
    extras/fixture/src

如果运行,您可以检查是否不需要手动定义依赖项$ bii deps --files *unity.h

通过这些更改,可以发布它。没有什么可建造的。

然后,为了在其他项目中使用它,我已经能够构建简单的测试:

#include "unity.h"

void testTrue(void){
    TEST_ASSERT(1);
    TEST_ASSERT_TRUE(1);
}

int main() {
  testTrue();
}

只需将以下内容添加到新项目的biicode.conf中:

[requirements]
    diego/unityfork: 0

[includes]
    unity.h: diego/unityfork/src

如果使用更典型的 CMake 配置而不是 Rakefiles,那么让 biicode 运行和构建测试而不忽略它们可能会容易得多

于 2015-03-15T23:28:20.367 回答