複数のコンポーネント(バージョン2.10)でネイティブアプリケーションをテストするためにクニットを使用する方法:複数のコンポーネントから作られた私はGradleのでネイティブCアプリケーションのためのGradleのプロジェクトを持っている
components {
component_1(NativeLibrarySpec)
component_2(NativeLibrarySpec)
...
component_n(NativeLibrarySpec)
main_component(NativeExecutableSpec){
sources {
c.lib library: "component_1", linkage: "static"
c.lib library: "component_2", linkage: "static"
...
c.lib library: "component_n", linkage: "static"
}
}
}
アプリケーションを持っていることの主なアイデアこの形式では、個々のコンポーネントをより簡単にテストできるようになりました。しかし、私は2つの大きな問題を抱えています:
main_component
はアプリケーションであるため、主な機能を持っています。このエラーはmultiple definition of 'main'
... gradle_cunit_main.c:(.text+0x0): first defined here
です。これは予想するものであり、ドキュメントに記載されていますが、主なコンポーネントがテストに含まれないように、この問題を回避する方法があるかどうかは疑問です。これは、私は次のようにテストするコンポーネントを定義しようとすると文句(のGradleのバージョン2.10のように)次の質問
クニットプラグインに関連している:
testSuites {
component_1Test(CUnitTestSuiteSpec){
testing $.components.component_1
}
}
}
のGradleは文句:
をCannot create 'testSuites.component_1Test' using creation rule 'component_1Test(org.gradle.nativeplatform.test.cunit.CUnitTestSuiteSpec) { ... } @ build.gradle line 68, column 9' as the rule 'CUnitPlugin.Rules#createCUnitTestSuitePerComponent > create(component_1Test)' is already registered to create this model element
要約すると、私はcunitプラグインにいくつかのコンポーネントだけをテストし、主なコンポーネントをテストのためにコンパイルしないように指示したいと思います。繰り返しますが、私はgradle 2.10を使用しており、最新のバージョンにアップグレードすることはできませんので、私たちのCIツールチェーンを壊すでしょう。
ご迷惑をおかけして申し訳ありません。