我有一个测试项目
test-suite spec
...
benchmark bench
build-depends:
library-test-spec
Run Code Online (Sandbox Code Playgroud)
...我如何依赖基准测试套件代码?以上不起作用,因为名称包library-test-spec不存在.
从 Cabal 2.0 开始,您可以将通用代码放在一个命名的“内部库”中,测试套件和基准测试都可以依赖该库。根据文档:
\n\n\n\n\nCabal 2.0 及更高版本支持 \xe2\x80\x9c 内部库\xe2\x80\x9d,它们是额外\n 命名库(与通常的未命名库部分相反)。例如,假设您的测试套件需要访问库中的某些内部模块,而您不想导出这些模块。您可以将这些模块放入内部库中,其中主库和测试套件的构建取决于。
\n
一个方便的内部库如下所示:
\n\nlibrary foo-internal\n exposed-modules: Foo.Internal\n build-depends: base\nRun Code Online (Sandbox Code Playgroud)\n\n当依赖它时,您不需要设置版本约束,因为相同的包依赖项隐式引用相同的包实例。
\n\n使用内部库,您可以避免双重编译(当您两次包含相同的源时)和妨碍主库(当您将公共代码放在那里时)。
\n\n请记住包含cabal-version: >=2在您的.cabal文件中。
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |