тестовые классы Matlab, определенные в другой папке - PullRequest
0 голосов
/ 27 октября 2019

У меня есть следующая структура проекта matlab:

enter image description here

tests папка содержит тестовые классы, которые должны выполняться с каркасом тестирования. Класс PostgreSQLConnectionOptionsTest является следующим

classdef PostgreSQLConnectionOptionsTest < matlab.unittest.TestCase

  methods (Test)

    function testDefaultConstructor(this)
      options = WTrade.Database.PostgreSQLConnectionOptions();
      this.verifyEqual(options.getHostName(), "");
      this.verifyEqual(options.getPort(), "0");
      this.verifyEqual(options.getDatabaseName(), "");
      this.verifyEqual(options.getUsername(), "");
      this.verifyEqual(options.getPassword(), "");
    end
  end
end

Сценарий runAllTests содержит следующий код:

import matlab.unittest.TestSuite

databaseSuite = TestSuite.fromFolder("tests/WTrade/Database");
result = run(databaseSuite);

Когда я запускаю сценарий, я получаю следующий вывод сошибка:

>> runAllTests
Running PostgreSQLConnectionOptionsTest

================================================================================
Error occurred in PostgreSQLConnectionOptionsTest/testDefaultConstructor and it did not run to completion.
    ---------
    Error ID:
    ---------
    'MATLAB:undefinedVarOrClass'
    --------------
    Error Details:
    --------------
    Undefined variable "WTrade" or class "WTrade.Database.PostgreSQLConnectionOptions".

    Error in PostgreSQLConnectionOptionsTest/testDefaultConstructor (line 6)
          options = WTrade.Database.PostgreSQLConnectionOptions();
================================================================================
.
Done PostgreSQLConnectionOptionsTest
__________

Failure Summary:

     Name                                                    Failed  Incomplete  Reason(s)
    =======================================================================================
     PostgreSQLConnectionOptionsTest/testDefaultConstructor    X         X       Errored.

Как правило, я не могу использовать PostgreSQLConnectionOptions внутри класса тестирования, потому что он не найден.

Как исправить код, чтобы я мог выполнять модульное тестирование, поддерживая код и тестыпапка разделена?

Ответы [ 2 ]

2 голосов
/ 28 октября 2019

Попробуйте добавить свой код в проект . Это позволит вам определить подходящую среду выполнения для вашего исходного кода, например, убедиться, что все правильные папки находятся в пути, или любое другое управление средой, которое вам нужно сделать, чтобы ваш код работал и был доступен.

Существуют и другие способы обеспечения доступности исходного кода при тестировании, но если вы можете использовать проекты (долгое время функция Simulink, которая теперь является частью MATLAB с R2019a), это, вероятно, будет самым чистым подходом.

0 голосов
/ 28 октября 2019

Что вам нужно сделать, это добавить путь к папке, включая все подкаталоги в ней! Это должно сделать работу addpath(genpath(folder));, где folder - это имя родительского каталога, внутри которого находятся все ваши подкаталоги!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...