Если на вашем сервере установлен Ruby, вы можете использовать watchr gem
То, что он делает, очень просто: при смене каталога / каталога он запускает определенный вами сценарий, который именно то, что вы пытаетесь сделать.
Вот пример файла autotest.rb
:
#!/usr/bin/ruby
# Match all PHP files in your project directory
watch("<PROJECT_DIR_PATH>/(.*).<FILE_EXTENSION_PHP>") do |match|
run_test %{<PROJECT_DIR_PATH>/Tests/#{match[1]}Test.php}
end
# Match all files in your Tests directory
watch("<PROJECT_DIR_PATH>/Tests/.*Test.php") do |match|
run_test match[0]
end
# Run test if there are matches
def run_test(file)
unless File.exist?(file)
puts "#{file} does not exist"
return
end
puts "Running #{file}"
result = `phpunit #{file}`
puts result
end
Таким образом, это будет соответствовать всем PHP или любым другим файлам расширений и запускать RegEx для имени файла, и если будет совпадение, такое как /Project/Tests/ClassNameTest.php, он будет запускать тест, в противном случае просто завершится с массажем. Для удобства можно настроить отправку электронных писем в случае ошибок на заранее определенный список электронных писем.