104 lines
2.7 KiB
Bash
Executable File
104 lines
2.7 KiB
Bash
Executable File
#!/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/"
|