Как протестировать определенный файл в golang? [Дубликат]

Для данных изображения мне проще использовать canvas.toBlob (асинхронный)

function b64toBlob(b64, onsuccess, onerror) {
    var img = new Image();

    img.onerror = onerror;

    img.onload = function onload() {
        var canvas = document.createElement('canvas');
        canvas.width = img.width;
        canvas.height = img.height;

        var ctx = canvas.getContext('2d');
        ctx.drawImage(img, 0, 0, canvas.width, canvas.height);

        canvas.toBlob(onsuccess);
    };

    img.src = b64;
}

var base64Data = 'data:image/jpg;base64,/9j/4AAQSkZJRgABAQA...';
b64toBlob(base64Data,
    function(blob) {
        var url = window.URL.createObjectURL(blob);
        // do something with url
    }, function(error) {
        // handle error
    });
106
задан 5 June 2013 в 10:14
поделиться

4 ответа

Есть два пути. Легким является использование флага -run и предоставление совпадений с образцами тестов, которые вы хотите запустить.

Пример:

$ go test -run NameOfTest

См. Документы для получения дополнительной информации.

Другой способ - указать конкретный файл, содержащий тесты, которые вы хотите запустить:

$ go test foo_test.go

Но есть улов. Это хорошо работает, если:

  • foo.go находится в package foo.
  • foo_test.go находится в package foo_test и импортирует «foo».

Если foo_test.go и foo.go являются одним и тем же пакетом (общий случай), вы должны указать все другие файлы, необходимые для сборки foo_test. В этом примере это будет:

$ go test foo_test.go foo.go

Я бы рекомендовал использовать шаблон -run. Или, где / когда это возможно, всегда выполняйте все тесты пакетов.

163
ответ дан allienx 19 August 2018 в 19:56
поделиться
  • 1
    не могли бы вы рассказать о первом (легком) способе с -run, пожалуйста? Я не могу найти никакой справочной справки об этом. – user 5 June 2013 в 10:46
  • 2
    о, я нашел его здесь golang.org/cmd/go/#hdr-Test_packages – user 5 June 2013 в 10:49
  • 3
    Вы также можете найти информацию об этом с помощью go help testflag – Jeffrey Martinez 31 January 2015 в 17:30
  • 4
    Когда я использую команду go test utils.go utils_test.go, выход будет ok command-line-arguments 0.002s. Он не запускает тест. Причина, по которой я хочу использовать этот тестовый режим, состоит в том, что пакет содержит много файлов, и они еще не компилируются, кроме utils. Поэтому я хотел бы завершить utils до workinqg для других файлов. Как я могу это сделать ? – chmike 3 December 2016 в 13:12
  • 5
    Если вы хотите увидеть, что было зарегистрировано при тестировании, стоит упомянуть флаг -v (verbose). Из документов -v Verbose output: log all tests as they are run. Also print all text from Log and Logf calls even if the test succeeds. – robstarbuck 1 March 2018 в 23:28

в плагине intelliJ IDEA go-lang (и я предполагаю, что в jetbrains Gogland) вы можете просто установить тестовый вид в файл в run> edit configurations

3
ответ дан robert king 19 August 2018 в 19:56
поделиться
  • 1
    В Gogland вы можете просто щелкнуть правой кнопкой мыши по тестовому файлу и выбрать & quot; запустите foo_test.go & quot; он будет строить пакет с тестами, а затем передать регулярное выражение, содержащее имена всех тестов в этом тестовом файле, на флаг -run. Очень полезная функция. – Eloff 20 September 2017 в 22:45
alias testcases="sed -n 's/func.*\(Test.*\)(.*/\1/p' | xargs | sed 's/ /|/g'"

go test -v -run $(cat coordinator_test.go | testcases)
1
ответ дан user2865442 19 August 2018 в 19:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: