使用資料產生器產生資料庫的測試資料

您可以使用 Visual Studio Premium 建立所需的測試資料,以驗證「資料庫專案」(Database Project) 中的「資料庫物件」(Database Object) 行為。 您可以產生適合資料庫的「結構描述」(Schema),但與實際執行資料無關的資料。 這個方法可協助您保護實際執行資料的隱私權或安全性。

您可定義「資料產生計劃」(Data Generation Plan),以指定如何針對特定資料表和資料行產生資料的詳細資料。 您可對每一個資料行指定資料產生器,以產生特定型別的資料。

當您在資料庫專案中建立資料產生計劃時,該計劃會依據此專案的結構描述。 如果您建立資料產生計劃,然後結構描述有所變更,系統就會提示您更新此計劃。

重要事項重要事項

如果您不依據結構描述變更來更新此資料產生計劃,您將無法繼續修改此計劃。 您只可以關閉此資料產生計劃,然後再將它重新開啟,即可再次顯示此提示。

當您執行「資料庫單元測試」(Database Unit Test) 時,您可以對每一個測試專案指定不同的資料產生計劃。 因此,您可以針對每一個測試群組,將資料庫初始化為不同的狀態。

資料產生器

Visual Studio Premium 包括數種內建的資料產生器,可用來產生不同種類的資料。 例如,整數產生器會提供隨機整數值、字串產生器會提供隨機字串,而規則運算式產生器會提供符合您所指定模式的字串。 如需詳細資訊及標準資料產生器的完整清單,請參閱標準資料產生器型別為資料行指定資料產生的詳細資料

如果 Visual Studio Premium 隨附的產生器未提供符合您需求的資料,您可以建立自訂產生器。 例如,如果您的資料庫有一個資料行具有參考另一個資料行的檢查條件約束,您可能會想要建立自訂資料產生器。 如需詳細資訊,請參閱使用自訂資料產生器產生特製化測試資料

如果您嘗試對包含 SPARSE 資料行和 COLUMN_SET 的資料表產生資料,則可能會收到錯誤。 如需詳細資訊,請參閱疑難排解資料產生問題

團隊環境中的資料產生計劃

資料產生計劃是一個 XML 檔案,包含資料庫結構描述的相關資訊,以及針對您指定的每一個資料表中的每一個資料行,控制資料產生的設定資訊。 包含約 40 個資料表之資料庫的資料產生計劃約為 8 MB,並且長度超過 100,000 行。

您無法使用 Team Foundation 版本控制或其他版本控制系統,將變更自動合併至 .dgen 檔案。 您必須用於手動合併大型 XML 檔案的處理序不但困難而且容易發生錯誤。 當您必須進行變更時,您可以在資料產生計劃上使用獨佔簽出,將該計劃的相關問題減至最少。

資料產生器的安全性

您可以在小組環境中共用資料產生計劃和自訂資料產生器。 在共用或使用共用的資料產生檔案之前,您應該考量下列安全性風險:

  • 資料產生計劃中的結構描述資訊
    當您建立資料產生計劃時,.dgen 檔會包含資料表的結構描述,這有可能是敏感的商業機密。 當您共用 .dgen 檔時,與您一起共用檔案的人可以看到您的結構描述。 您應該只與信任的來源共用資料產生計劃。

  • 資料產生計劃中的惡意程式碼
    當資料產生計劃包含資料繫結產生器時,您會撰寫此計劃執行時所要執行的 Transact-SQL 查詢。 這個方法可在資料產生計劃中執行任意 Transact-SQL。 您應該只從信任的來源取得資料產生計劃,並且應警告使用者不要執行從不信任來源所收到的資料產生計劃。

  • 連接資訊和自訂資料產生器
    所有的自訂資料產生器都可以在執行階段存取資料庫連接字串。 惡意的自訂產生器可能會公開連接字串資訊。 您應該只從信任的來源取得自訂資料產生器,並且應警告使用者不要使用從不信任來源所收到的自訂資料產生器。

  • 自訂資料產生器中的惡意程式碼
    自訂資料產生器是可包含任意程式碼的類別。 當您使用自訂資料產生器時,它會以與現用使用者相同的權限來執行。 這個方法可以在 FullTrust 模式中執行惡意程式碼。 您應該只從信任的來源取得自訂資料產生器,並且應警告使用者不要使用從不信任來源所收到的自訂資料產生器。

  • 自訂資料產生器的安裝程式中的惡意程式碼
    您可以建立部署專案來安裝自訂資料產生器。 部署專案可包含任意程式碼。 當您執行自訂資料產生器的安裝程式時,會以提高的權限執行此程式。 這個方法可以使用提高的權限執行惡意程式碼。 您應該只從信任的來源取得自訂資料產生器安裝程式,並且應警告使用者不要執行從不信任來源所收到之自訂資料產生器的安裝程式。

一般工作

一般工作

支援內容

獲得實務練習:您可以執行入門逐步解說,開始熟悉如何建立及執行簡單的資料庫單元測試。

建立資料產生計劃:為每一個單元測試專案或特定應用程式測試建立資料產生計劃。 您也可以定義資料產生計劃並預設所有資料行重複使用您指定之其他資料庫中的資料。

從上一個版本升級資料產生計劃:您可以使用您使用上一版 Visual Studio Premium 建立的資料產生計劃。 不過,您必須在開啟計劃後立即進行升級。

指定您要產生的資料表:您可以對所有資料表或是只對您指定的資料表產生資料。 對於每一個資料表,您可以指定要產生的列數。 此外,您可以依照某個比例產生資料列,而該比例是以您對其他資料表產生的資料列數為基礎。

對您指定之資料表中的每一個資料行設定資料產生方式:您可對每一個資料行指定資料產生器的類型。 您也可以提供資料值範圍的條件約束。 對於更高階的資料產生器,您可以提供其他組態資訊,進一步調整您產生的資料。

預覽所產生的資料:將資料寫入至資料庫之前,您可以預覽資料產生計劃內含的任何資料表的資料。 藉由預覽資料,您即可調整資料產生計劃,而不需反覆產生資料。

產生測試資料:在您預覽並驗證過將要產生的資料之後,您可以執行資料產生計劃以產生測試資料。 您也可以設定單元測試專案,以便在每回執行單元測試時自動產生資料。

簽入資料產生計劃:正如您必須將單元測試簽入至版本控制才能與小組一起共用,您也必須簽入資料產生計劃。

變更資料產生器預設值和選項:您可以對隨機種子和要插入的資料列數指定預設值。 您也可以指定選項來控制資料產生器的各個層面,例如:要顯示在預覽視窗中的列數,以及在對個別資料表產生資料的作業失敗之前可以顯示的可接受錯誤上限。

疑難排解問題:您可以進一步了解如何疑難排解有關建立及使用資料產生計劃的常見問題。

相關案例