我有一个来自Github的git pull web hook,两个遥控器,GoDaddy [生产]和Bluehost [staging].这个问题不是关于那些公司本身,而是可能是设置差异的原因.我有这个脚本,我在github.com上设置为post commit hook:
<?php
$output = shell_exec('git pull origin master');
echo "<pre>$output</pre>";
?>
Run Code Online (Sandbox Code Playgroud)
当我提交Github仓库时,钩子会在Bluehost上启动并正常工作.它对Godaddy没有任何作用.
Bluehost浏览器响应:
"already up to date". Pull command works, and the Bluehost repo is updated.
Run Code Online (Sandbox Code Playgroud)
Godaddy浏览器响应:
<pre></pre> Pull command has not worked. Repo not updated.
Run Code Online (Sandbox Code Playgroud)
当我通过浏览器运行此脚本时:
<?php
$output = shell_exec('ls');
echo "<pre>$output</pre>";
?>
Run Code Online (Sandbox Code Playgroud)
我在两台服务器上都获得了正确的'ls'目录输出.
当我通过SSH进入目录时,我可以手动发出命令'git pull origin master',它可以在两台服务器上运行.那么这只是意味着Godaddy允许PHP发出一些命令,而不是其他命令吗?我能以某种方式修复此问题吗?没有人会自动部署到Godaddy中,这是不正确的!
这可能是我对嘲笑的误解。我真的很感激关于为什么嘲笑不存在或存在的类是一件好事的解释?
示例场景:假设我们有一个类依赖于第二个类的输出,并且我们更改了输出格式或其他内容。尽管它们在第一类中已经过时了,但这不会让我们的测试保持成功吗?
我在单元测试一个具有在构造函数中调用的方法的类时遇到了麻烦.我不明白如何嘲笑这个.也许我应该使用phpUnit的'setUp'方法?
我正在使用Mockery库.有没有比这更好的工具?
class ToTest
{
function __construct() {
$this->methodToMock(); // need to mock that for future tests
}
// my methods class
}
Run Code Online (Sandbox Code Playgroud)
任何建议,将不胜感激.
我在各种云平台上使用Codeception,例如Amazon AWS和Cloud 9.默认情况下,它们都没有GUI.我的问题是,你能在这种类型的系统上运行Selenium吗?或者我需要以某种方式获得GUI?
mockery ×2
php ×2
phpunit ×2
unit-testing ×2
bluehost ×1
codeception ×1
git ×1
mocking ×1
selenium ×1
ubuntu ×1