Я задаюсь вопросом, почему пытается запустить следующий набор тестов терпит неудачу при попытке удалить таблицу я хранимую объекты в. Ошибки я получаю следующееПочему создается и удаляется таблица Azure?
1) Azure Storage cloud storage operations "after all" hook: Error: The specified resource does not exist. RequestId:3745d709-fa5e-4a2b-b517-89edad3efdd2 Time:2013-12-03T22:26:39.5532356Z
Если я закомментировать фактическую вставку данных он терпит неудачу в другой раз, и если я пытаюсь выполнить вложение данных, он терпит неудачу каждый раз с дополнительным «указанная таблица не существует».
Для первого случая это, по-видимому, указывает на то, что в создании таблицы существует какая-то задержка, поэтому в каждом другом тесте она успешна, а для второго случая она, по-видимому, указывает на то, что хотя мои обратные вызовы вызываются после создания таблицы таблица (таблицы) еще не готова к вводу данных.
Тестовый набор и связанный код выглядит следующим образом:
describe('cloud storage operations', function() {
var storage;
before(function (done) {
this.timeout(5000);
storage = AzureStorage.usingTable('TEST', done);
});
after(function (done) {
storage.deleteTable(done);
});
it('should store without trouble', function (done) {
storage.save(factory.createChangeSet()).then(done, done);
});
});
... // отрезала от azure.js
var AzureStorage = function (storageClient, tableName, callback) {
assert(storageClient && tableName && partitionKey, "Missing parameters");
this.storageClient = storageClient;
this.tableName = tableName;
var defaultCallback = function (err) { if (err) { throw error; } };
this.storageClient.createTableIfNotExists(this.tableName, function() {
callback();
} || defaultCallback);
};
AzureStorage.usingTable = function (tableName, callback) {
return new AzureStorage(
azure.createTableService(accountName, accountKey)
, tableName
, callback
);
};
AzureStorage.prototype.deleteTable = function (callback) {
this.storageClient.deleteTable(this.tableName, callback);
};
Хммм. Я действительно не вижу, как изменение имени таблицы должно влиять на операции, НО ЭТО ДЕЛАЕТ. Таким образом, ваше обходное решение действительно работает. Я изменил код установки для использования \t \t \t \t \t \t 'хранения = AzureStorage.usingTable («TEST»+ Date.now(), сделано);' – oligofren
Когда я прочитал это работает каждый другой раз, я понял, что быть работал в первый раз, но не второй. Именно там поможет уникальное имя. Если он не работает в первый раз, но, проходя второй, обходной путь, вероятно, не решает проблему. –