共用方式為


HOW TO:為您的診斷資料配接器建立資料的自訂編輯器

當您建立診斷資料配接器時,可以讓使用者在選取您的自訂診斷資料配接器以用於其測試設定時,能夠設定特定資料。例如,您可以選取組態資料,以指定要擷取哪些登錄機碼、要模擬何種網路負載層級,或是要在哪個目錄中尋找要附加的暫存檔或工作檔案。

您必須使用組態檔,為您的診斷資料配接器設定初始值。您可以提供自訂編輯器,讓使用者可以修改組態資料。

若要建立您自己的編輯器,您必須建立實作了 IDataCollectorConfigurationEditor 的使用者控制項。

診斷資料配接器可以使用 DataCollectorConfigurationEditorAttribute,來指定用於編輯診斷資料組態設定的編輯器類別。

您也會指定要使用的預設組態資料。如需範例預設組態,請參閱建立診斷資料配接器的範例專案

使用下列程序建立自訂編輯器,以在有使用者使用您的自訂資料診斷配接器時,更新測試設定的資料。

注意事項注意事項

若要建立自訂編輯器,您必須先建立已將 DataCollectorConfigurationEditorAttribute 套用至此類別的診斷資料配接器。您可以在該屬性 (Attribute) 中使用選擇性 HelpUri 屬性 (Property) 來指定編輯器的說明內容來源。如需如何建立診斷資料配接器的詳細資訊,請參閱 HOW TO:建立診斷資料配接器

如需診斷資料配接器專案的完整範例 (包括自訂組態編輯器),請參閱建立診斷資料配接器的範例專案

為您的診斷資料配接器建立自訂編輯器

為您的診斷資料配接器建立自訂編輯器

  1. 在專案中為您的資料診斷配接器建立使用者控制項:

    1. 以滑鼠右鍵按一下包含診斷資料配接器類別的專案,指向 [加入],然後指向 [使用者控制項]。

    2. 在此範例中,請將文字為 Data File Name: 的標籤和名為 FileTextBox 的文字方塊加入至表單,讓使用者輸入必要的資料。

    注意事項注意事項

    目前僅支援 Windows Forms 使用者控制項。

  2. 將下列程式碼行加入至宣告區段:

    using System.Xml;
    using Microsoft.VisualStudio.TestTools.Common;
    using Microsoft.VisualStudio.TestTools.Execution;
    
  3. 將此使用者控制項放入自訂編輯器中。

    1. 以滑鼠右鍵按一下程式碼專案中的使用者控制項,然後指向 [檢視程式碼]。

    2. 設定類別以實作編輯器介面 IDataCollectorConfigurationEditor,如下所示:

       public partial class MyDataConfigEditor :
            UserControl, IDataCollectorConfigurationEditor
    
    1. 以滑鼠右鍵按一下程式碼中的 IDataCollectorConfigurationEditor,然後選取 [實作介面] 命令。您必須為此介面實作的方法會加入至您的類別中。

    2. DataCollectorConfigurationEditorAttribute 加入至您的使用者控制項,讓您的編輯器將其識別為診斷資料配接器編輯器,並將 [公司]、[產品] 和 [版本] 取代為診斷資料配接器的適當資訊:

      [DataCollectorConfigurationEditorTypeUri(
          "configurationeditor://MyCompany/MyConfigEditor/1.0")]
      
  4. 加入兩個私用變數,如下所示:

    private DataCollectorSettings collectorSettings;
    private IServiceProvider ServiceProvider { get; set; }
    
  5. 加入程式碼以初始化診斷資料配接器的編輯器。您可以使用 settings 變數中的資料,將預設值加入至使用者控制項中的欄位。此資料是指位於 XML 組態檔中,您配接器之 <DefaultConfiguration> 項目中的資料。

    public void Initialize(
        IServiceProvider svcProvider,
        DataCollectorSettings settings)
    {
        ServiceProvider = svcProvider;
        collectorSettings = settings;
    
        // Display the default file name as listed in the settings file.
        this.SuspendLayout();
        this.FileTextBox.Text = getText(collectorSettings.Configuration);
        this.ResumeLayout();
    }
    
  6. 加入程式碼,以將您編輯器中的控制項資料儲存回診斷資料配接器 API 所需的 XML 格式,如下所示:

    public DataCollectorSettings SaveData()
    {
        collectorSettings.Configuration.InnerXml =
            String.Format(
    @"<MyCollectorName
        http://MyCompany/schemas/MyDiagnosticDataCollector/1.0"">
      <File FullPath=""{0}"" />
    </MyCollectorName>",
        FileTextBox.Text);
        return collectorSettings;
    }
    
  7. 如果對您來說很重要,請加入程式碼以驗證 VerifyData 方法中的資料正確無誤,或者讓方法傳回 true。

    public bool VerifyData()
    {
        // Not currently verifying data
        return true;
    }
    
  8. (選擇性) 您可以加入程式碼,以將資料重設為 ResetToAgentDefaults() 方法 (使用私用 getText() 方法) 中的 XML 組態檔所提供的初始設定。

    // Reset to default value from XML configuration
    // using a custom getText() method
    public void ResetToAgentDefaults()
    {
        this.FileTextBox.Text = getText(collectorSettings.DefaultConfiguration);
    }
    
    // Local method to read the configuration settings
    private string getText(XmlElement element)
    {
        // Setup namespace manager with our namespace
        XmlNamespaceManager nsmgr =
            new XmlNamespaceManager(
                element.OwnerDocument.NameTable);
    
        // Find all the "File" elements under our configuration
        XmlNodeList files = element.SelectNodes("//ns:MyCollectorName/ns:File", nsmgr);
    
        string result = String.Empty;
        if (files.Count > 0)
        {
            XmlAttribute pathAttribute = files[0].Attributes["FullPath"];
            if (pathAttribute != null &&
                !String.IsNullOrEmpty(pathAttribute.Value))
            {
                result = pathAttribute.Value;
            }
        }
    
        return result;
    }
    
  9. 建置您的方案。根據您的安裝目錄,將診斷資料配接器組件和 XML 組態檔 (<diagnostic data adapter name>.dll.config) 複製至下列位置:Program Files\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies\DataCollectors

    注意事項注意事項

    雖然組態編輯器和診斷資料配接器的所在專案和組件可以不同,但也可以位於相同的組件中。

  10. 運用您的偵錯資料器於測試,你必須從現有的設定清單選擇或從Microsoft Test Manager或 Visual Studio創建一個新的然後選擇您的偵錯資料器。

    配接器會顯示在測試設定的 [資料和診斷] 索引標籤上,並使用您指派給類別的易記名稱。

  11. 要配置您的偵錯資料器到您的測試設定,選擇配置器名稱旁的配置

    您的自訂編輯器隨即顯示。

  12. 視需要編輯自訂編輯器中的欄位,然後選[儲存]。

  13. 如果您從 Microsoft Test Manager執行測試,您可以在執行測試前將這些測試設定指派給測試計劃,或使用 [以選項執行] 命令來指派測試設定和覆寫測試設定。如需測試設定的詳細資訊,請參閱使用測試設定安裝電腦和收集診斷資訊

  14. 在可以使用新的組態編輯器搭配診斷資料配接器之前,您必須將 DataCollectorConfigurationEditorAttribute 套用至要使用編輯器的每個診斷資料配接器類別,然後在用戶端電腦上重新編譯和重新安裝這些類別。如需如何安裝診斷資料配接器和組態編輯器的詳細資訊,請參閱 HOW TO:安裝自訂的診斷資料配接器

  15. 使用已選取您診斷資料配接器的測試設定來執行您的測試。

    您在編輯器中指定的資料檔案會附加至測試結果中。

如需如何設定測試設定以便在執行測試時使用環境的詳細資訊,請參閱在 Microsoft Test Manager 中指定測試設定使用 Microsoft Test Manager 建立自動化系統測試的測試設定

請參閱

工作

建立診斷資料配接器的範例專案

參考

IDataCollectorConfigurationEditor

DataCollectorConfigurationEditorAttribute

DataCollectorConfigurationEditorAttribute

概念

建立診斷資料配接器以收集自訂資料或影響測試電腦

使用測試設定安裝電腦和收集診斷資訊