runall.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?php
  2. /**
  3. * 依赖winrar和wget
  4. */
  5. require 'config.php';
  6. require_once './coverage/jscov.php';
  7. /**
  8. * 考虑单浏览器执行入口,从config提取浏览器ip信息,通过staf启动用例的执行
  9. * @param $b
  10. * @param $filter
  11. * @param $debug
  12. */
  13. $count = 0;
  14. function run( $b , $debug = false )
  15. {
  16. $browser = Config::$BROWSERS[ $b ];
  17. $host = $debug ? 'localhost' : $browser[ 0 ];
  18. $path = $debug
  19. ? 'C:\\Documents and Settings\\shenlixia01\\Local Settings\\Application Data\\Google\Chrome\\Application\\chrome.exe'
  20. : $browser[ 1 ];
  21. $browserSet = array_key_exists( 'browserSet' , $_GET )?"^&browserSet=".$_GET[ 'browserSet' ]:'';
  22. $url = "http://" . $_SERVER[ 'SERVER_ADDR' ] . ( $debug ? "" : ":8089" )
  23. . substr( $_SERVER[ 'PHP_SELF' ] , 0 , -11 ) . "/list.php?batchrun=true^&browser=$b".$browserSet;
  24. if ( !array_key_exists( "ci" , $_GET ) )
  25. $url .= "^&mail=true";
  26. if(array_key_exists( "filter" , $_GET )){
  27. $filterR = array_key_exists( $b , $_GET )?$_GET[$b]:$_GET['filter'];
  28. if(strstr($b,'main')||strstr($b,'supp')){
  29. $url .= "^&filterRun={$filterR}^&filter={$_GET['filter']}";
  30. }else {
  31. $url .= "^&filterRun={$_GET['filter']}^&filter={$_GET['filter']}";
  32. }
  33. }
  34. // if( $b!='ie6') {
  35. if ( array_key_exists( 'cov' , $_GET ) )
  36. $url .= "^&cov={$_GET['cov']}";
  37. // }
  38. // else
  39. // $url .= "^&cov=true";
  40. print "wangnew--".$url;
  41. if ( $b == 'baidu' ) {
  42. $url = "--'$url'";
  43. }
  44. require_once 'lib/Staf.php';
  45. $result = Staf::process_start( $path , $url , $host );
  46. return $result;
  47. }
  48. function delDirAndFile( $dirName )
  49. {
  50. if ( $handle = opendir( "$dirName" ) ) {
  51. while ( false !== ( $item = readdir( $handle ) ) ) {
  52. if ( $item != "." && $item != ".." ) {
  53. if ( is_dir( "$dirName/$item" ) ) {
  54. delDirAndFile( "$dirName/$item" );
  55. } else {
  56. if ( unlink( "$dirName/$item" ) ) echo "成功删除文件: $dirName/$item<br />\n";
  57. }
  58. }
  59. }
  60. closedir( $handle );
  61. if ( rmdir( $dirName ) ) echo "成功删除目录: $dirName<br />\n";
  62. }
  63. }
  64. //$filewang = fopen('wangruilog.txt', 'a+');
  65. //fwrite($filewang, "wangrui1" . "\n");
  66. //
  67. //fclose($filewang);
  68. //unset($filewang);
  69. echo "wang";
  70. if ( array_key_exists( 'clear' , $_GET ) ) {
  71. print 'debug - clear report';
  72. //Config::StopAll();
  73. if ( file_exists( 'report' ) )
  74. delDirAndFile( 'report' );
  75. }
  76. $reportfile = "report_{$_GET['filter']}";
  77. if ( file_exists( $reportfile ) ) {
  78. // rmdir('report');
  79. $reports = scandir( $reportfile );
  80. /*自己和父节点*/
  81. print 'on batch run, please waiting : ' . ( sizeof( $reports ) - 2 );
  82. return;
  83. } else {
  84. mkdir( $reportfile );
  85. }
  86. echo "wang2";
  87. if ( file_exists( "./coverage/source.js" ) ) {
  88. if ( unlink( "./coverage/source.js" ) ) echo "成功删除文件:source.js";
  89. }
  90. source();
  91. echo "wang3";
  92. if ( file_exists( "covreport.html" ) ) {
  93. if ( unlink( "covreport.html" ) ) echo "成功删除覆盖率报告文件: covreport.html<br />\n";
  94. }
  95. echo "wang4";
  96. if ( file_exists( "jshintReport.html" ) ) {
  97. if ( unlink( "jshintReport.html" ) ) echo "成功删除: jshintReport.html<br />\n";
  98. }
  99. echo "wang5";
  100. exec("python ../lib/jshunter_1.2.0.1/jshunter_dev/jshunter/hint.py jshintReport.html ../../../_src", $back);
  101. echo "jshint: ".$back."<br />\n";
  102. /*记录运行时信息*/
  103. $b = array_key_exists( 'browser' , $_GET ) ? $_GET[ 'browser' ] : 'all';
  104. //if ( array_key_exists( 'cov' , $_GET ) ){
  105. if ( $b != 'all' ) {
  106. run( $b , true );
  107. } else {
  108. Config::StopAll(); //添加启动前结束浏览器步骤
  109. $browsers = array_key_exists( 'browserSet' , $_GET )?Config::getBrowserSet($_GET[ 'browserSet' ]):Config::$BROWSERS;
  110. foreach ( $browsers as $b => $i ) {
  111. run( $b );
  112. sleep(40);
  113. }
  114. }
  115. ?>