Иногда с помощью персонажей, которые вы указали, возможно простое экранирование. Например, использование обратной косой черты для выхода из скобки не будет работать в левой части строки подстановки в sed, а именно
sed -e 's/foo\(bar/something_else/'
. Я просто использую простое определение класса символов вместо , поэтому вышеприведенное выражение становится
sed -e 's/foo[(]bar/something_else/'
, которое я нахожу для большинства реализаций регекса.
BTW Классы символов являются довольно ванильными элементами регулярного выражения, поэтому они, как правило, работают в большинстве ситуаций, когда вы нужны экранированные символы в регулярных выражениях.
Изменить: после комментария ниже, просто подумал, что я бы упомянул о том, что вам также нужно учитывать разницу между автоматами конечного состояния и автоматами не конечного состояния при просмотре поведение оценки regexp.
Возможно, вам захочется взглянуть на «блестящую книгу с шаром», а также на эффективную Perl ( санированную ссылку Amazon ), в частности главу о регулярных выражениях, чтобы получить почувствуйте тогда разницу в типах оценки двигателя regexp.
Не все в мире PCRE!
В любом случае, регулярные выражения настолько неуклюжи по сравнению с SNOBOL ! Теперь это был интересный курс программирования! Наряду с тем, что на Simula .
Ах, радости изучения в UNSW в конце 70-х! (-:
Я смог копировать Вашу проблему с Hudson 1.266. Это Гудзонская ошибка, которая была зафиксирована в более поздней сборке (до 1,287), таким образом, или обновление Гудзон или используют это обходное решение с двумя щелчками: от страницы Project перейдите сначала к Последней Сборке и затем Агрегированным Результатам испытаний.
Проблема состоит в том, что страница Project для Foo только показывает Последнюю ссылку Результатов испытаний, которая имеет URL как http://localhost:8080/hudson-1.266/job/Foo/lastBuild/testReport/. Так как у Foo нет собственных тестов, эта ссылка не имеет никакого XML-файла JUnit к ссылке и возвращает ошибку, которую Вы упомянули. Это было зафиксировано где-нибудь между 1,266 и 1.287 путем перенаправления от latestBuild/testReport/назад до latestBuild/, когда нет никаких тестов. Альтернатива для Вас в 1,266 к, вместо того, чтобы нажать на Latest Test Results на странице Project, прокрутите немного вниз и нажмите на Latest Build под Постоянными ссылками. Это возьмет Вас к latestBuild/URL, и оттуда можно нажать на Aggregated Test Result, который имеет URL как http://localhost:8080/hudson-1.266/job/Foo/lastBuild/aggregatedTestReport/. На этой странице все Ваши результаты испытаний из нисходящих проектов будут доступны под разделом Drill Down.
К сожалению, существует все еще проблема со ссылками Развертки, даже в 1,287. От Нечто, когда Вы выполняете развертку к Тестам Нечто, как обрисовано в общих чертах выше, Вы будете взяты к уродливому URL, который похож на http://localhost:8080/hudson-1.287job/Foo-Tests/. Необходимо будет вручную изменить тот URL для вставки / между гудзонским контекстом и путем задания после него так, чтобы он был похож на http://localhost:8080/hudson-1.287/job/Foo-Tests/. Затем Вы сможете на самом деле видеть нисходящие результаты испытаний.
У меня не было шанса просмотреть Гудзонский источник для нахождения ошибки, но уже существует проблема, открытая для этого. Его выпуск 1574 и его открытое в течение почти года.
На ноте стороны я действительно люблю Гудзон за CI, но их интерфейс не является столь гладким, как это могло быть. Я с нетерпением жду их переделывать UI в ExtJS. Возможно, это - то, на чем они проводят все свое время.
Я зафиксировал пропавших без вести '/' проблема в Hudson 1.288
Ключ к использованию агрегата в нисходящем направлении тестирует результаты, должен выполнить снятие отпечатков пальцев на обоих заданиях. В этом случае это был бы 'Foo' и 'тесты Нечто'
Гудзон подходит сборку с нисходящими тестами путем нахождения файлов с идентичными цифровыми отпечатками. Таким образом, это означает, что Ваши цифровые отпечатки должны соответствовать. Отчасти как место преступления.
Мы используем Hudson ver. 1.324 и были аналогичные проблемы. Хотя вы упомянули, что пытались включить снятие отпечатков пальцев, у вас это не сработало, но у нас это сработало. Мы следовали инструкциям, приведенным здесь:
http://shotgunsandpenguins.blogspot.com/2009/07/how-to-aggregate-downstream-test.html
два проекта, Foo и Foo-Test, должны знать, что находятся в одном потоке, поэтому он берет отпечатки пальцев (и, следовательно, архивирует) общего файла.
у меня был чтобы выбрать файл, который не изменился между запуском Foo и Foo-Test и все еще изменялся между запусками обоих. для меня это был несвязанный временный .jar, созданный Foo в настраиваемой / общей рабочей области для моих версий Foo и Foo-Test.
то есть, мне пришлось позволить Foo и Foo-Test отпечатать один и тот же файл.
после этого, по крайней мере, с Hudson 1.330, все заработало - агрегированные ссылки, детализация и т. Д.