template-monorepo/generate/doc-generate/test_all_formats.sh

104 lines
2.7 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 "OK: Swagger $VERSION"
else
echo "FAIL"
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 "OK: YAML format"
else
echo "FAIL"
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 "OK: OpenAPI $VERSION"
else
echo "FAIL"
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 "OK: OpenAPI YAML"
else
echo "FAIL"
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 "OK: $TITLE"
else
echo "FAIL"
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 "OK: OpenAPI 3.0 $TITLE"
else
echo "FAIL"
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 "OK: error handling"
else
echo "FAIL: error handling"
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/"