Добрый день, есть скрипт, который работает не совсем так, как я ожидаю.
Что-то мне подсказывает, что я неправильно понимаю систему работы данного метода, либо недопонимаю.
Что нужно:Есть папка с каким-то количеством подпапок. Мне нужно, чтобы QTP делал их список, заносил в data table (для дальнейшей работы) и выдавал в отчете, по необходимости.
Скрипт, в принципе работает, но он делает то количество итераций, сколько папок внутри у него находится. Если я прерываю тест, то он выдает полный список, но количество итераций, соответствует тому моменту, когда я его прервал. Т.е. в datatable полный список из 37 папок, но в списке 4е итерации (что, в принципе, ожидаемо).
Я уже 3ий день пытаюсь сделать так, чтобы он не делал столько итераций, т.к. нужный мне список выдается уже после первой. Пробовал и в функцию запихнуть, и циклы do until с внутренним счетчиком.
Подскажите в чем я не прав? может быть другой метод? Возможно, следует использовать getnextrow но он у меня не работает, т.к. строка изначально одна, и при использовании команда зацикливается.
A="D:\Файлы\***\" Dim fso, f, f1, s, sf, cnt Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFolder(A) Set sf = f.SubFolders cnt = Sf.Count datatable.Value("cnt")=cnt k=2 For each f1 in sf s = f1.name Datatable.Value("typevs")=s Datatable.SetCurrentRow (k) k=k+1 next a = datatable.Value ("typevs") Reporter.ReportEvent 0, "", a
PS Догадался таки залезть в настройки теста и увидел run all rows по умолчанию, поставил one iteration, заработало как надо. Я так понимаю, в этои и была моя ошибка, а сам метод тут не причем.
Сообщение отредактировал dondemon: 21 октября 2013 - 09:41