我有一个设置验证的Symfony表单(使用validations.yml文件中的定义)。在此表单中是一个电子邮件字段,我已添加 checkMX 验证程序约束。这在正常使用情况下工作正常。 http://symfony.com/doc/current/reference/constraints/Email.html#checkmx
然而,当运行我的测试套件时,没有互联网连接,这会阻止测试,因为验证器试图查找电子邮件地址域的DNS,并且它无法查找DNS并且必须等待超时。在任何情况下,在测试期间需要远程查找都不理想。
有没有办法从验证中删除此约束,但仅在运行 TEST 环境时?据推测,我只需要覆盖约束,但我不知道如何在每个环境中执行此操作。
由于
答案 0 :(得分:0)
您可以从控制器获取环境并将其传递到表单:
$env = $this->container->get( 'kernel' )->getEnvironment();
$oForm = $this->createForm(new Form($env));
然后在你的BuildForm之前:
public function __construct($env)
{
$this->sEnv = $env;
}
然后你做了测试。
答案 1 :(得分:0)
自Symfony 3.1
以来,此问题已得到修复http://symfony.com/doc/current/components/phpunit_bridge.html#dns-sensitive-tests