0

ビルド スクリプトへの出力として ITaskTem[] を返すカスタム ビルド タスクがあります。MSBuild スクリプトからこれらの値にアクセスする方法に関するドキュメント/例が見つかりません。

私の Execute メソッドは、配列を返すこのプライベート メソッドを呼び出します。出力を反復処理して、TaskItem ItemSpec と "Message" メタデータ アイテムの両方を取得できるようにしたいと考えています。これどうやってするの?

[Output]
    public ITaskItem[] FailedTestsResults { get; set; }

...

 private ITaskItem[] GetFailedTests(TestResultsSummary testResultsSummary)
    {          
       IList<TestResult> testList = testResultsSummary.Tests.ToList();
       IEnumerable<TestResult> failedTests = testList.Where(x => !x.Passed);
        IList<ITaskItem> failedTestsTaskItems = new List<ITaskItem>();
        foreach (var failedTest in failedTests)
        {

                //test encountered enexpected error.
                ITaskItem failTestItem = new TaskItem(failedTest.TestName);
                failTestItem.SetMetadata("Message", failedTest.Message);
                failedTestsTaskItems.Add(failTestItem);
        }
        return (ITaskItem[]) failedTestsTaskItems.ToArray();
    }
4

1 に答える 1

0

私はそれを考え出した。メタデータには次のようにアクセスできます..

 <Message Text="Failed: %(FailedTests.Identity) => %(FailedTests.Message)" />

「$」ではなく「%」を使用していることに注意してください。

于 2012-05-08T18:34:29.253 に答える