SimpleTesting-PDOException: SQLSTATE [42S02] Просмотр Изменить редакции Опубликовано ichionid 15 декабря 2011 г. в 10:56 Привет всем,
Я нахожусь в процессе разработки модуля. Я пытаюсь включить модуль SimpleTest, чтобы иметь отдельное место, содержащее мои тесты кода.
Однако, когда я пытаюсь выполнить запрос к таблицам в базе данных, которые я создаю, я получаю:
PDOException: SQLSTATE [42S02]: базовая таблица или представление не найдены: 1146 Table 'plays.simpletest311135TABLENAME
Он пытается найти таблицу simpletest311135TABLENAME, в то время как он должен искать TABLENAME. Это всегда добавляет простейшее и случайное число.
Когда я запускаю запросы к таблицам drupal по умолчанию, таким как пользователи и сеансы, все работает отлично. Есть обходной путь?
Яннис
Фактическая функция
function dlm_job_finished($jobId,$urls,$messageFromFS){
$query = db_select('users','u');
$query -> fields('u',array('uid'));
$d_alias = $query->innerJoin('dlm_user_auth_entities','d','%alias.uid = u.uid');
$query -> condition("{$d_alias}.jid",$jobId);
$result = $query->execute();
$message = variable_get('dlm_settings_email_message').'<br />';
foreach ($result as $record) {
foreach ($urls as $file_url_to_download){
$message.= '<a href="'.$file_url_to_download.'">'.$file_url_to_download.'</a> <br /> ';
}
$message.=$messageFromFS.'<br />';
dlm_mail_notifier($record->uid,$message);
}
}
функция тестирования:
class DlmTestCase extends DrupalWebTestCase{
public function setUp(){
parent::setUp('dlm');
}
public function testDlmJobFinished(){
$info = module_invoke(
'dlm',
'job_finished',
'awsedrfvcxzsdfrtawsedrfvcxzsdfrt',
array(
'http://media.holkeydonkey.com/download/frehvf64fdsffdf.zip',
'http://media.marioBos.com/download/12.zip',
),
"additional message!"
);
}
}
Внутри тестового класса я работал только с теми функциями, которые запрашивают таблицы базы данных drupal по умолчанию. Кроме того, функция выше работает, я вызывал по-другому, и она работала, проблема в том, что я не могу заставить ее работать с модулем простого тестирования Drupal.