test_runner.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <?php
  2. /**
  3. * 简单的测试运行器
  4. * 用于快速验证测试配置和环境
  5. */
  6. require_once __DIR__ . '/../../../../vendor/autoload.php';
  7. use App\Module\AppGame\Tests\TestEnvironment;
  8. use App\Module\AppGame\Tests\TestConfig;
  9. echo "=== 测试环境验证 ===\n";
  10. try {
  11. // 1. 加载环境变量
  12. echo "1. 加载测试环境变量...\n";
  13. TestEnvironment::load();
  14. echo "✅ 环境变量加载成功\n";
  15. // 2. 验证基本配置
  16. echo "\n2. 验证基本配置...\n";
  17. $testUrl = TestEnvironment::getTestUrl();
  18. echo "测试URL: {$testUrl}\n";
  19. $testUser = TestEnvironment::getTestUser();
  20. echo "测试用户: " . json_encode($testUser, JSON_UNESCAPED_UNICODE) . "\n";
  21. // 3. 验证灾害去除配置
  22. echo "\n3. 验证灾害去除配置...\n";
  23. $pesticideConfig = TestConfig::getPesticideTestConfig();
  24. echo "除虫配置: " . json_encode($pesticideConfig, JSON_UNESCAPED_UNICODE) . "\n";
  25. $weedicideConfig = TestConfig::getWeedicideTestConfig();
  26. echo "除草配置: " . json_encode($weedicideConfig, JSON_UNESCAPED_UNICODE) . "\n";
  27. $wateringConfig = TestConfig::getWateringTestConfig();
  28. echo "浇水配置: " . json_encode($wateringConfig, JSON_UNESCAPED_UNICODE) . "\n";
  29. // 4. 验证测试物品配置
  30. echo "\n4. 验证测试物品配置...\n";
  31. $pesticideItem = TestConfig::getTestItem('pesticide');
  32. echo "除虫剂: " . json_encode($pesticideItem, JSON_UNESCAPED_UNICODE) . "\n";
  33. $weedicideItem = TestConfig::getTestItem('weedicide');
  34. echo "除草剂: " . json_encode($weedicideItem, JSON_UNESCAPED_UNICODE) . "\n";
  35. $wateringItem = TestConfig::getTestItem('watering_tool');
  36. echo "浇水道具: " . json_encode($wateringItem, JSON_UNESCAPED_UNICODE) . "\n";
  37. // 5. 验证测试土地配置
  38. echo "\n5. 验证测试土地配置...\n";
  39. $pestLand = TestConfig::getTestLand('pest_land');
  40. echo "虫害土地: " . json_encode($pestLand, JSON_UNESCAPED_UNICODE) . "\n";
  41. $weedLand = TestConfig::getTestLand('weed_land');
  42. echo "杂草土地: " . json_encode($weedLand, JSON_UNESCAPED_UNICODE) . "\n";
  43. $droughtLand = TestConfig::getTestLand('drought_land');
  44. echo "干旱土地: " . json_encode($droughtLand, JSON_UNESCAPED_UNICODE) . "\n";
  45. // 6. 验证测试场景配置
  46. echo "\n6. 验证测试场景配置...\n";
  47. $pesticideSuccess = TestConfig::getTestScenario('success_scenarios', 'pesticide_success');
  48. echo "除虫成功场景: " . json_encode($pesticideSuccess, JSON_UNESCAPED_UNICODE) . "\n";
  49. $invalidItem = TestConfig::getTestScenario('failure_scenarios', 'invalid_item');
  50. echo "无效物品场景: " . json_encode($invalidItem, JSON_UNESCAPED_UNICODE) . "\n";
  51. // 7. 验证调试配置
  52. echo "\n7. 验证调试配置...\n";
  53. $debugConfig = TestEnvironment::getDebugConfig();
  54. echo "调试配置: " . json_encode($debugConfig, JSON_UNESCAPED_UNICODE) . "\n";
  55. $isDebugMode = TestEnvironment::isDebugMode();
  56. echo "调试模式: " . ($isDebugMode ? '开启' : '关闭') . "\n";
  57. // 8. 验证性能配置
  58. echo "\n8. 验证性能配置...\n";
  59. $performanceConfig = TestEnvironment::getPerformanceConfig();
  60. echo "性能配置: " . json_encode($performanceConfig, JSON_UNESCAPED_UNICODE) . "\n";
  61. $concurrentConfig = TestEnvironment::getConcurrentConfig();
  62. echo "并发配置: " . json_encode($concurrentConfig, JSON_UNESCAPED_UNICODE) . "\n";
  63. $probabilityConfig = TestEnvironment::getProbabilityConfig();
  64. echo "概率配置: " . json_encode($probabilityConfig, JSON_UNESCAPED_UNICODE) . "\n";
  65. // 9. 测试网络连接
  66. echo "\n9. 测试网络连接...\n";
  67. $ch = curl_init();
  68. curl_setopt($ch, CURLOPT_URL, $testUrl);
  69. curl_setopt($ch, CURLOPT_TIMEOUT, 5);
  70. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  71. curl_setopt($ch, CURLOPT_NOBODY, true);
  72. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  73. $result = curl_exec($ch);
  74. $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  75. $error = curl_error($ch);
  76. curl_close($ch);
  77. if ($result !== false && $httpCode > 0) {
  78. echo "✅ 服务器连接正常 (HTTP {$httpCode})\n";
  79. } else {
  80. echo "❌ 服务器连接失败: {$error}\n";
  81. }
  82. echo "\n=== 环境验证完成 ===\n";
  83. echo "✅ 所有配置验证通过,可以开始运行测试\n";
  84. } catch (Exception $e) {
  85. echo "❌ 环境验证失败: " . $e->getMessage() . "\n";
  86. echo "错误详情: " . $e->getTraceAsString() . "\n";
  87. exit(1);
  88. }
  89. // 10. 显示使用说明
  90. echo "\n=== 使用说明 ===\n";
  91. echo "环境验证完成,您可以使用以下命令运行测试:\n\n";
  92. echo "# 运行所有测试\n";
  93. echo "./app/Module/AppGame/Tests/run_tests.sh all\n\n";
  94. echo "# 运行特定测试\n";
  95. echo "./app/Module/AppGame/Tests/run_tests.sh pesticide\n";
  96. echo "./app/Module/AppGame/Tests/run_tests.sh weedicide\n";
  97. echo "./app/Module/AppGame/Tests/run_tests.sh watering\n\n";
  98. echo "# 使用Laravel测试命令\n";
  99. echo "php artisan test app/Module/AppGame/Tests/Land/PesticideHandlerTest.php\n\n";
  100. echo "# 准备测试数据\n";
  101. echo "php app/Module/AppGame/Tests/prepare_test_data.php prepare\n\n";
  102. echo "# 清理测试数据\n";
  103. echo "php app/Module/AppGame/Tests/prepare_test_data.php cleanup\n\n";