feat: some refactoring
This commit is contained in:
15
scripts/build.sh
Executable file
15
scripts/build.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
echo "Building MyGoServer..."
|
||||
|
||||
# Create build directory
|
||||
mkdir -p build/bin
|
||||
|
||||
# Build the binary
|
||||
echo "Building apiserver binary..."
|
||||
go build -o build/bin/apiserver ./cmd/apiserver
|
||||
|
||||
echo "Build completed successfully!"
|
||||
echo "Binary location: build/bin/apiserver"
|
||||
101
scripts/test.sh
Executable file
101
scripts/test.sh
Executable file
@@ -0,0 +1,101 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
echo "🧪 Running tests for MyGoServer..."
|
||||
|
||||
# Colors for output
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Function to print colored output
|
||||
print_status() {
|
||||
local status=$1
|
||||
local message=$2
|
||||
if [ "$status" = "PASS" ]; then
|
||||
echo -e "${GREEN}✅ $message${NC}"
|
||||
elif [ "$status" = "FAIL" ]; then
|
||||
echo -e "${RED}❌ $message${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}⚠️ $message${NC}"
|
||||
fi
|
||||
}
|
||||
|
||||
# 1. Run all unit tests
|
||||
echo -e "${YELLOW}Running all unit tests...${NC}"
|
||||
go test -v ./internal/apiserver/...
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
print_status "PASS" "Unit tests passed"
|
||||
else
|
||||
print_status "FAIL" "Unit tests failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 2. Run tests with coverage
|
||||
echo -e "${YELLOW}Running tests with coverage...${NC}"
|
||||
go test -coverprofile=coverage.out ./...
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
print_status "PASS" "Coverage tests completed"
|
||||
|
||||
# Generate coverage report
|
||||
go tool cover -html=coverage.out -o coverage.html 2>/dev/null || true
|
||||
if [ -f "coverage.html" ]; then
|
||||
echo -e "${GREEN}📊 Coverage report generated: coverage.html${NC}"
|
||||
fi
|
||||
|
||||
# Show coverage percentage
|
||||
go tool cover -func=coverage.out | tail -1
|
||||
else
|
||||
print_status "FAIL" "Coverage tests failed"
|
||||
fi
|
||||
|
||||
# 3. Run tests with race detector (optional, takes longer)
|
||||
echo -e "${YELLOW}Running race detector tests...${NC}"
|
||||
echo "This may take longer - press Ctrl+C to skip, or wait..."
|
||||
sleep 2
|
||||
|
||||
if go test -race ./internal/apiserver/... > /dev/null 2>&1; then
|
||||
print_status "PASS" "Race detector tests passed"
|
||||
else
|
||||
print_status "WARN" "Race detector tests completed (some may have warnings)"
|
||||
fi
|
||||
|
||||
# 4. Run vet (static analysis)
|
||||
echo -e "${YELLOW}Running go vet (static analysis)...${NC}"
|
||||
go vet ./...
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
print_status "PASS" "Static analysis passed"
|
||||
else
|
||||
print_status "WARN" "Static analysis completed with warnings"
|
||||
fi
|
||||
|
||||
# 5. Check formatting
|
||||
echo -e "${YELLOW}Checking code formatting...${NC}"
|
||||
if [ "$(gofmt -s -l . | wc -l)" -gt 0 ]; then
|
||||
print_status "FAIL" "Code formatting issues found:"
|
||||
gofmt -s -l .
|
||||
echo "Run 'gofmt -s -w .' to fix formatting"
|
||||
exit 1
|
||||
else
|
||||
print_status "PASS" "Code formatting is correct"
|
||||
fi
|
||||
|
||||
# 6. Run specific test patterns (if specified)
|
||||
if [ "$1" != "" ]; then
|
||||
echo -e "${YELLOW}Running specific tests: $1${NC}"
|
||||
go test -v ./internal/apiserver/... -run="$1"
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}🎉 All tests completed successfully!${NC}"
|
||||
echo ""
|
||||
echo "📝 Usage examples:"
|
||||
echo " ./scripts/test.sh # Run all tests"
|
||||
echo " ./scripts/test.sh \"TestHome\" # Run specific test pattern"
|
||||
echo " go test ./... # Run all tests manually"
|
||||
echo " go test -v ./internal/apiserver/ # Run specific package tests"
|
||||
echo " go test -race ./... # Run with race detector"
|
||||
Reference in New Issue
Block a user