[英]Testing a python script which use a subprocess to spawn a bash subshell .. is it possible?
我有一個相當復雜的項目,我想測試..但我找不到如何完全測試它。
該項目本身是Django的開發環境。 它包含一個Python腳本,可用於創建新項目或激活開發環境。
為了激活開發環境,我使用了類似Virtualenv的技術。 我的python腳本調用了一個外殼腳本,該外殼腳本本身會生成一個rcfile。
聽起來比實際要復雜。 工作流程如下所示:
$ cd my-project/
$ duke dev
(my-project)$
duke是我的Python腳本,它調用一個名為dev的bash腳本。 開發腳本僅包含如下一行:
#!/ bin / bash。 /路徑/到/斌/環境
因此,它基本上只是啟動一個子外殼,在其中我獲得了一個名為env的rcfile。
在開發過程中,環境本身會小心地創建所有必需的命令和環境變量。
我的問題是,我無法測試特定於該環境的任何東西,因為我的腳本會生成一個子進程,然后該子進程會在子外殼中激活該環境。 子進程關閉,子外殼保持打開狀態,直到我退出它為止。
雖然有效,但我找不到可靠的測試方法。
是否有可能對此進行測試?
這是代碼:
您運行的任何腳本都將始終產生一個子shell。
您應該致電. %(base_path)s/.duke/bin/env
在您啟動python代碼之前,請先在命令行上或作為生成python的同一腳本的一部分,先運行. %(base_path)s/.duke/bin/env
。
不要忘了導出可能在子流程中使用的變量和函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.