---
id: sm3-creating-oracle-to-postgres-migration-integration-tests
name: "creating-oracle-to-postgres-migration-integration-tests"
url: https://skills.yangsir.net/skill/sm3-creating-oracle-to-postgres-migration-integration-tests
author: github
domain: testing
tags: ["integration-testing", "database-migration-testing", "oracle-to-postgresql", "test-automation"]
install_count: 1800
rating: 4.30 (20 reviews)
github: https://github.com/github/awesome-copilot
---

# creating-oracle-to-postgres-migration-integration-tests

> 为Oracle到PostgreSQL数据库迁移创建集成测试，验证迁移后系统功能和数据完整性。

**Stats**: 1,800 installs · 4.3/5 (20 reviews)

## Before / After 对比

### Oracle到PostgreSQL迁移集成测试

## Readme

# creating-oracle-to-postgres-migration-integration-tests

# Creating Integration Tests for Oracle-to-PostgreSQL Migration

Generates integration test cases for data access artifacts in a single target project. Tests validate behavior consistency when running against Oracle or PostgreSQL.

## Prerequisites

- The test project must already exist and compile (scaffolded separately).

- Read the existing base test class and seed manager conventions before writing tests.

## Workflow

```
Test Creation:
- [ ] Step 1: Discover the test project conventions
- [ ] Step 2: Identify testable data access artifacts
- [ ] Step 3: Create seed data
- [ ] Step 4: Write test cases
- [ ] Step 5: Review determinism

```

**Step 1: Discover the test project conventions**

Read the base test class, seed manager, and project file to understand inheritance patterns, transaction management, and seed file conventions.

**Step 2: Identify testable data access artifacts**

Scope to the target project only. List data access methods that interact with the database — repositories, DAOs, stored procedure callers, query builders.

**Step 3: Create seed data**

- Follow seed file location and naming conventions from the existing project.

- Reuse existing seed files when possible.

- Avoid `TRUNCATE TABLE` — keep existing database data intact.

- Do not commit seed data; tests run in transactions that roll back.

- Ensure seed data does not conflict with other tests.

- Load and verify seed data before assertions depend on it.

**Step 4: Write test cases**

- Inherit from the base test class to get automatic transaction create/rollback.

- Assert logical outputs (rows, columns, counts, error types), not platform-specific messages.

- Assert specific expected values — never assert that a value is merely non-null or non-empty when a concrete value is available from seed data.

- Avoid testing code paths that do not exist or asserting behavior that cannot occur.

- Avoid redundant assertions across tests targeting the same method.

**Step 5: Review determinism**

Re-examine every assertion against non-null values. Confirm each is deterministic against the seeded data. Fix any assertion that depends on database state outside the test's control.

## Key Constraints

- **Oracle is the golden source** — tests capture Oracle's expected behavior.

- **DB-agnostic assertions** — no platform-specific error messages or syntax in assertions.

- **Seed only against Oracle** — test project will be migrated to PostgreSQL later.

- **Scoped to one project** — do not create tests for artifacts outside the target project.

Weekly Installs235Repository[github/awesome-copilot](https://github.com/github/awesome-copilot)GitHub Stars25.7KFirst Seen7 days agoSecurity Audits[Gen Agent Trust HubPass](/github/awesome-copilot/creating-oracle-to-postgres-migration-integration-tests/security/agent-trust-hub)[SocketPass](/github/awesome-copilot/creating-oracle-to-postgres-migration-integration-tests/security/socket)[SnykPass](/github/awesome-copilot/creating-oracle-to-postgres-migration-integration-tests/security/snyk)Installed ongemini-cli203codex202opencode195cursor194kimi-cli192github-copilot192

---
*Source: https://skills.yangsir.net/skill/sm3-creating-oracle-to-postgres-migration-integration-tests*
*Markdown mirror: https://skills.yangsir.net/api/skill/sm3-creating-oracle-to-postgres-migration-integration-tests/markdown*