我們的專案在單元測驗(即模擬)期間需要與正常編譯期間不同的柯南包。是否有最佳實踐如何在此類用例的 conanfile 中實作條件要求?
我們嘗試過使用帶有如下環境變數的開關:
class project_a(ConanFile):
....
def requirements()
if os.getenv('UNIT_TESTING') == 'true':
self.requires('mock_for_testing/1.0.0@someuser/somechannel
...
但是在單元測驗期間,project_a 的要求總是會發生變化。因此,當一個專案被測驗時,它也會消耗 project_a。
uj5u.com熱心網友回復:
Conan 在構建包時并不專注于運行單元測驗,而是專注于打包工件,如庫、頭檔案和二進制檔案。
但是,有一個準備好的環境變數可用于單元測驗:CONAN_RUN_TESTS。您應該改用tools.get_env。
另外,查看self.develop,它可用于在您構建或使用包時進行檢測,因此您可以將其用作添加或不添加要求的條件:
def requirements()
if self.develop:
self.requires('mock/1.0.0@user/channel')
然后,只有在運行命令create時才會使用該包。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/422200.html
標籤:
下一篇:一項SCM輪詢多個作業以提高性能
