ファイルとディレクトリの作成、移動、名前変更に反応するディレクトリモニタ用のユニットテストをDockerで実行しようとしています。ここで ビルド時にスクリプトが失敗しますが、Dockerコンテナから動作します
はスクリプトです:redis
があるモニターで気づいたイベントがストックされている#/bin/bash # Launch Redis server redis-server --daemonize yes # Start directory_observer python /test/directory_observer/src/directory_observer.py --config=/test/directory_observer/tests/directory_observer.ini & # Execute test script (operations in the folders) bash /test/directory_observer/tests/Dockerfile_testing/directory_observer_test_cases.sh # Run Python unit test based on the operations executed above python /test/directory_observer/tests/Dockerfile_testing/test_directory_observer.py cd /test/directory_observer/ && nosetests
directory_observer.py
ディレクトリが
だけではbashで監視していますいくつかのファイルやディレクトリの作成、名前の変更、移動directory_observer_test_cases.sh
test_directory_observer.py
ちょうどPythonのユニットテストスクリプト(デバッグ目的のために、ここで実行します)
問題はいくつかのテストビルドで任意の明白な理由なしに失敗するということですが、私は正確に同じbashの命令をしようとするとされます実行中のコンテナから、意図したとおりに動作します。
あなたはdirectory_observer_test_cases.sh
のコードが必要な場合:
#!/bin/bash
cd /test/monitored1
# Create, rename and delete file
touch file1
mv file1 rename1
# Same as above, but in a sub-directory
mkdir sub-monitored
cd /test/monitored1/sub-monitored
touch file2
mv file2 rename2
cd /test/monitored2
# Create, rename and delete file to test second monitored dir
touch file12
mv file12 rename12
### NOT MONITORED FROM HERE ###
# Rename the monitored directory
cd /test
mv monitored1 watched1
# Same as #1, but in the newly renamed directory
cd /test/watched1
touch file3
mv file3 rename3
# Move the second monitored directory
cd /test
mv monitored2 directory_host
# Same as #1, but in the newly moved directory
cd /test/directory_host/monitored2
touch file4
mv file4 rename4
# Operations in the non-monitored directory
cd /test/ingored.t
touch file5
mv file5 rename5
をあなたが尋ねるFOREて、はい私はthis questionを読みましたが、それはそこに私を助けていない(または私は何かが欠けています)。