Используйте getObject () для загрузки файлов из корзины s3. Смотрите следующий пример: -
var stream = require('stream');
const s3 = require('../config/s3.config.js');
exports.doDownload = (req, res) => {
const s3Client = s3.s3Client;
const params = s3.downloadParams;
params.Key = req.params.filename;
s3Client.getObject(params)
.createReadStream()
.on('error', function(err){
res.status(500).json({error:"Error -> " + err});
}).pipe(res);
}
Для создания тестового прогона, когда Вы выпуск make check
, необходимо добавить их к TESTS
переменная
Предположение, что Вы уже создали исполняемый файл, который выполняет модульные тесты, Вы просто добавляете название исполняемого файла к ТЕСТОВОЙ переменной как это:
TESTS=my-test-executable
Это должно тогда быть автоматически выполнено, когда Вы make check
, и если исполняемый файл возвращает ненулевое значение, это сообщит что как тестовый отказ. Если Вы имеете несколько исполняемых файлов модульного теста, просто перечисляете их всех в TESTS
переменная:
TESTS=my-first-test my-second-test my-third-test
и они будут все выполнены.
Вы, кажется, задаете 2 вопроса в первом абзаце.
первое о добавлении тестов к набору инструментальных средств автоинструментов GNU - но те тесты, если я понимаю Вас правильно, и для проверки, что среда, необходимая для создавания приложения, существует (зависимые библиотеки и инструменты), а также адаптируйте сборку к среде (конкретные различия платформы).
вторым является о поблочном тестировании Ваше приложение C++ и где вызвать те тесты, Вы предложили делать так от набора инструментальных средств автоинструментов, по-видимому, из настраивать сценария. Выполнение, которое не является стандартным, хотя - помещение 'тестовой' цели в Вашем Make-файле является более стандартным способом выполнить Ваш набор тестов. Типичные шаги для того, чтобы создать и установить приложение с автоинструментами (по крайней мере, с точки зрения пользователя, не с Вашего, разработчика, перспективы) должны выполнить настраивать сценарий, тогда работать, делают, тогда дополнительно работают, делают тест и наконец делают установку.
Для второго выпуска, не желая cppunit быть зависимостью, почему не только распределяют его с Вашим приложением C++? Можете Вы просто исправить его в том, что когда-либо архивирует формат, который Вы используете (быть им tar.gz, tar bz2 или .zip) наряду с Вашим исходным кодом. Я использовал cppunit в прошлом, и было довольно им, используя JUnit и другие платформы стиля xUnit.