doc-generate/test_all_formats.sh

104 lines
2.9 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 測試所有格式生成
set -e
echo "🧪 測試 go-doc 所有格式生成"
echo "================================"
# 建立測試目錄
TEST_DIR="test_output_verification"
mkdir -p "$TEST_DIR"
echo ""
echo "📝 測試 1: Swagger 2.0 (JSON)"
./bin/go-doc -a example/example.api -d "$TEST_DIR" -f test1_swagger2
if [ -f "$TEST_DIR/test1_swagger2.json" ]; then
VERSION=$(jq -r '.swagger' "$TEST_DIR/test1_swagger2.json")
echo "✅ 成功生成 Swagger $VERSION"
else
echo "❌ 失敗"
exit 1
fi
echo ""
echo "📝 測試 2: Swagger 2.0 (YAML)"
./bin/go-doc -a example/example.api -d "$TEST_DIR" -f test2_swagger2 -y
if [ -f "$TEST_DIR/test2_swagger2.yaml" ]; then
echo "✅ 成功生成 YAML 格式"
else
echo "❌ 失敗"
exit 1
fi
echo ""
echo "📝 測試 3: OpenAPI 3.0 (JSON)"
./bin/go-doc -a example/example.api -d "$TEST_DIR" -f test3_openapi3 -s openapi3.0
if [ -f "$TEST_DIR/test3_openapi3.json" ]; then
VERSION=$(jq -r '.openapi' "$TEST_DIR/test3_openapi3.json")
echo "✅ 成功生成 OpenAPI $VERSION"
else
echo "❌ 失敗"
exit 1
fi
echo ""
echo "📝 測試 4: OpenAPI 3.0 (YAML)"
./bin/go-doc -a example/example.api -d "$TEST_DIR" -f test4_openapi3 -s openapi3.0 -y
if [ -f "$TEST_DIR/test4_openapi3.yaml" ]; then
echo "✅ 成功生成 OpenAPI YAML"
else
echo "❌ 失敗"
exit 1
fi
echo ""
echo "📝 測試 5: 中文範例 (Swagger 2.0)"
./bin/go-doc -a example/example_cn.api -d "$TEST_DIR" -f test5_cn_swagger2
if [ -f "$TEST_DIR/test5_cn_swagger2.json" ]; then
TITLE=$(jq -r '.info.title' "$TEST_DIR/test5_cn_swagger2.json")
echo "✅ 成功生成中文範例: $TITLE"
else
echo "❌ 失敗"
exit 1
fi
echo ""
echo "📝 測試 6: 中文範例 (OpenAPI 3.0)"
./bin/go-doc -a example/example_cn.api -d "$TEST_DIR" -f test6_cn_openapi3 -s openapi3.0
if [ -f "$TEST_DIR/test6_cn_openapi3.json" ]; then
TITLE=$(jq -r '.info.title' "$TEST_DIR/test6_cn_openapi3.json")
echo "✅ 成功生成中文 OpenAPI 3.0: $TITLE"
else
echo "❌ 失敗"
exit 1
fi
echo ""
echo "📝 測試 7: 錯誤處理(無效的 spec-version"
if ./bin/go-doc -a example/example.api -d "$TEST_DIR" -s invalid 2>&1 | grep -q "spec-version must be"; then
echo "✅ 錯誤處理正常"
else
echo "❌ 錯誤處理失敗"
exit 1
fi
echo ""
echo "📊 生成檔案統計"
echo "================================"
ls -lh "$TEST_DIR"
echo ""
echo "📈 檔案大小比較"
echo "================================"
echo "Swagger 2.0 vs OpenAPI 3.0:"
S2_SIZE=$(stat -f%z "$TEST_DIR/test1_swagger2.json" 2>/dev/null || stat -c%s "$TEST_DIR/test1_swagger2.json")
O3_SIZE=$(stat -f%z "$TEST_DIR/test3_openapi3.json" 2>/dev/null || stat -c%s "$TEST_DIR/test3_openapi3.json")
echo " Swagger 2.0: $S2_SIZE bytes"
echo " OpenAPI 3.0: $O3_SIZE bytes"
echo ""
echo "🎉 所有測試通過!"
echo ""
echo "生成的檔案位於: $TEST_DIR/"