Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不同的操作系统上运行PHPUnit';在XML配置文件中存在差异_Xml_Configuration_Phpunit - Fatal编程技术网

在不同的操作系统上运行PHPUnit';在XML配置文件中存在差异

在不同的操作系统上运行PHPUnit';在XML配置文件中存在差异,xml,configuration,phpunit,Xml,Configuration,Phpunit,在运行时处理的PHPUnit XML文件中是否可能存在配置差异,以便根据执行平台配置设置?例如,在Ubuntu上使用颜色,但在Windows中不使用 解释: 我使用了不同的开发平台,希望确保我们的代码适用于任何一个平台上的web服务器。此外,我们使用的工具在不同的平台上。例如,开发人员的内部后端服务器(PHPUnit、PHPDocs、Wiki和其他工具)位于Ubuntu计算机上。开发人员积极使用基于Windows的PC 当开发人员更改代码时,我们希望他们能够在将代码签入我们的存储库之前测试代码是

在运行时处理的PHPUnit XML文件中是否可能存在配置差异,以便根据执行平台配置设置?例如,在Ubuntu上使用颜色,但在Windows中不使用

解释:

我使用了不同的开发平台,希望确保我们的代码适用于任何一个平台上的web服务器。此外,我们使用的工具在不同的平台上。例如,开发人员的内部后端服务器(PHPUnit、PHPDocs、Wiki和其他工具)位于Ubuntu计算机上。开发人员积极使用基于Windows的PC

当开发人员更改代码时,我们希望他们能够在将代码签入我们的存储库之前测试代码是否正常工作。因此,他们在本地机器上运行PHPUnit、PHP_代码嗅探器、PHPMD和PHPDocs,查看是否可以提交

然后,主系统将看到提交的代码,并将与其他人一起重新运行这些测试,在Ubuntu机器上更改代码,用测试结果、代码覆盖率等更新公司范围内的页面。。。这些测试甚至可以在具有不同操作系统/语言配置的不同计算机上运行。在这一点上,通过Selenium进行的Web浏览器测试也开始了,这同样适用于许多不同的Web服务器/操作系统/浏览器版本

随着我们引入新的工具、不同的项目等,XML文件随着排除文件、测试套件配置等的变化而变化。。。因此,我们将此文件保存在源代码树中,以确保开发人员在运行测试时具有最新的设置

我希望能够根据平台不同地配置一些设置(这将适用于我们的所有组合,因为我可以设置正在使用的任何变量),而不必在源代码之后复制不同的文件,以确保收到更改


这是合理的,还是使用像詹金斯这样的东西可以帮助我避免这个问题?然而,我正试图让Windows PC上的工具尽可能基本,以便于开发人员快速运行,否则他们将忽略这一步骤。

这个答案比预期的要长,但它是合适的。快速的答案是只构建不同的配置文件。 phs7.xml

phpunitubuntu.xml

phpunitmacox.xml

等等

但我认为你的问题是,有太多不同的配置,这样做将需要大量的维护,所以我首先要做的是使用我想要的设置构建一个对象。将基本phpunit.xml加载到对象中

$sxe=simplexml\u load\u文件('phpunit.xml);
//修改节点
$sxe->phpunit='';
//您可以访问元素的属性,如下所示:
$attribute=$sxe->phpunit->attributes()->$att;
$sxe->phpunit->attributes()->$verbose=$phpunitSettings->verbose;
//将整个修改后的XML保存到新文件名
$sxe->asXml('windows7-cookie-cuter-phpunit.xml');
每个开发人员都会根据其操作系统/项目等将其构建配置设置为适当的phpunit配置文件

Jenkins当然会帮助您这样做,因为您可以在Ant构建文件中运行此脚本,在phpunit运行之前更新这些phpunit配置文件,而不是手动运行

您可能会做的另一件事是使用

<?php 
    header ("Content-Type:text/xml");
?>

显示这样的动态文件

<phpunit setting="<?php echo $setting; ?>"

><!-- yada yada-->
</phpunit>

感谢您的详细回复。我将在我们的测试环境中实现类似的东西。
<phpunit setting="<?php echo $setting; ?>"

><!-- yada yada-->
</phpunit>