Если вам удобно использовать mysql, просто экспортируйте таблицу wp_user и импортируйте ее на другой сайт
На основе Вашего описания это места, я обратился бы к модульному тесту:
От звуков Вашего описания настоящая проблема состоит в том, что код, с которым Вы работаете, не является модульным. Одно из преимуществ, которые я нахожу с поблочным тестированием, - то, что оно кодирует, который трудно протестировать, является или не достаточно модульным или имеет неловкий интерфейс. Попытайтесь разломать код на мелкие кусочки, и Вы найдете места, где имеет смысл писать модульные тесты.
Я не эксперт по этому, но был смущен некоторое время по той же причине. Так или иначе приложения, которые я делаю просто, не соответствуют к примерам, данным для Поблочного тестирования (очень асинхронный и случайный в зависимости от взаимодействия активного пользователя), я недавно понял (и сообщите мне, неправ ли я), что не имеет смысла делать своего рода глобальный тест, а скорее несметное число маленьких тестов для каждого компонента. Самое легкое должно создать тест в то же время или даже прежде, чем создать фактические процедуры.
У Вас есть 3 000 строк кода в единственной процедуре/методе? Если так, затем, вероятно, необходимо осуществить рефакторинг код в меньшие, более понятные части для создания этого удобным в сопровождении. Когда Вы сделаете это, у Вас будут те части, что Вы можете и если модульный тест. В противном случае затем у Вас уже есть те части - отдельные процедуры/методы, которые называет Ваша основная программа.
Даже без модульных тестов, тем не менее, Вы должны все еще тесты записи на код, чтобы удостовериться, что Вы предоставляете корректные исходные данные внешней программе и тестируете это, Вы обрабатываете выводы из программы правильно и при нормальных и при исключительных условиях. Методы, используемые в поблочном тестировании - как насмешка - могут использоваться в этих интеграционных тестах, чтобы гарантировать, что Ваша программа работает правильно, не включая внешний ресурс.
Интересная "точка разделения" для Вашего приложения - Вы, говорят, что "пользователь заполняет форму". Если Вы хотите протестировать, необходимо осуществить рефакторинг код для построения явного представления той формы как структура данных. Затем можно начать собирать формы и тестировать это, система соответственно отвечает на каждую форму.
Может случиться так, что меры, принятые Вашей системой, не заметны, пока что-то не поражает файловую систему. Вот несколько идей:
Настройте что-то как репозиторий мерзавца для начального состояния файловой системы, выполните форму и посмотрите на вывод различного мерзавца. Вероятно, что это собирается чувствовать больше как регрессионное тестирование, чем поблочное тестирование.
Создайте новый модуль, чей только цель состоит в том, чтобы сделать действия Вашей программы заметными. Это может быть столь же просто как запись соответствующего текста к файлу журнала или столь сложный, как Вам нравится. При необходимости можно использовать условную компиляцию или соединение, чтобы гарантировать, что этот модуль делает что-то только, когда система находится под тестом. Это ближе к традиционному поблочному тестированию, поскольку можно теперь записать тесты, которые говорят относительно получения формы A, система должна взять последовательность действий B. Очевидно, необходимо решить, какие действия, как должны наблюдать, формируют разумный тест.
Я подозреваю, что Вы мигрируете к чему-то, что больше походит на регрессионное тестирование, чем поблочное тестирование по сути. Это не обязательно плохо. Не пропускайте покрытие кода!
(Заключительный вводный комментарий: в плохие былые времена интерактивных консольных приложений Don Libes создал инструмент под названием, Ожидают, который был чрезвычайно полезен в разрешении Вам написать сценарий программы, которая взаимодействовала как пользователь. По-моему, нам отчаянно нужно что-то подобное для взаимодействия с веб-страницами. Я думаю, что отправлю вопрос об этом :-)
Большинство программ (независимо от парадигмы языка) может быть повреждено в атомарные единицы, которые берут вход и обеспечивают вывод. Как другие респонденты упомянули, изучите рефакторинг программы и разламывание его на мелкие кусочки. При тестировании ступает внимание меньше на сквозную функциональность и больше на человека, в котором обрабатываются данные.
Кроме того, единица должна не обязательно быть отдельной функцией (хотя это часто имеет место). Единица является сегментом функциональности, которая может быть протестирована с помощью исходных данных и измерив выводы. Я видел это, чтобы использование JUnit протестировало API Java. Отдельные методы не могли бы обязательно обеспечить гранулярность, в которой я нуждаюсь для тестирования, хотя серия вызовов метода будет. Поэтому функциональность, которую я рассматриваю как "единицу", немного больше, чем отдельный метод.
Необходимо не обязательно реализовать автоматизированные тесты, которые тестируют отдельные методы или компоненты. Вы могли реализовать автоматизированный модульный тест, который моделирует пользователя, взаимодействующего с Вашим приложением, и протестируйте то свое приложение, отвечает корректным способом.
Я предполагаю, что Вы вручную тестируете свое приложение в настоящее время, раз так затем думайте о том, как Вы могли автоматизировать это и работать оттуда. Со временем необходимо смочь повредить тесты в прогрессивно меньшие блоки, которые тестируют меньшие разделы кода. Любой вид автоматизированного тестирования обычно намного лучше чем ничего.
Необходимо, по крайней мере, осуществить рефакторинг материал, который похож на него, могла бы быть проблема и модульный тест это. Но как правило, функция не должна быть этим долго. Вы могли бы найти что-то, что является модульным тестом, достойным, после того как Вы начинаете осуществлять рефакторинг
Я думаю, что волна тестирования паранойи распространяется :) Его польза для исследования вещей видеть, имели ли тесты смысл, иногда ответ, будет нет.
Единственная вещь, которую я протестировал бы, удостоверяется, что поддельный вход формы обрабатывается правильно.. Я действительно не вижу, где еще автоматизированный тест помог бы. Я думаю, что Вы хотели бы, чтобы тест был не агрессивен (т.е. никакая запись на самом деле не сохраняется во время тестирования), так, чтобы мог бы исключить другие немного возможностей.
Как некоторые ответили прежде, существует несколько способов, которыми можно протестировать то, что Вы обрисовали в общих чертах. Сначала вход формы, может быть протестирован несколькими способами. Что происходит, если недопустимые данные введены, допустимые данные, и т.д. Затем каждая функция может быть протестирована, чтобы видеть, реагируют ли функции при предоставлении различными формами корректных и неправильных данных надлежащим способом. Затем можно дразнить приложение, которые называют так, чтобы можно было удостовериться, что приложение отправляет и обрабатывает данные к внешним программам правильно. Не делайте для, добираются для проверки соглашений о программе с неожиданными данными из внешней программы также.
Обычно, способ, которым я выясняю, как я хочу к тестам записи на программу, которую мне присвоили поддержать, состоит в том, чтобы видеть то, что я, делают вручную для тестирования программы. Затем попытайтесь изобразить, как автоматизировать как можно больше его. Кроме того, не ограничивайте свои инструменты тестирования только языком программирования, в котором Вы пишете код.
Если Вы не можете протестировать что-то, как Вы знаете, что это работает? Ключ к разработке программного обеспечения - то, что код должен быть тестируемым. Это может сделать фактическую запись программного обеспечения более трудной, но это окупается в более легком обслуживании позже.