Выполнено 0 тестов за 0,000 с при использовании файла модульного теста exe c () в python - PullRequest
0 голосов
/ 09 марта 2020

У меня есть python программа mid.py:

def mid(a, b):
    if a == 0:
        print(b)
        r = b
        r = r + 1
        return r
    while b != 0:
        if a > b:
            a = a - b
        else:
            b = b - a
    print(a)
    r = a
    return r

Я написал модульный тест для этого в unitTest1.py:

import sys
sys.path.append('..')
from Data.mid import mid

import unittest


class TestSum(unittest.TestCase):
    currentResult = None  # holds last result object passed to run method


    def run(self, result=None):
        self.currentResult = result  # remember result for use in tearDown
        unittest.TestCase.run(self, result)  # call superclass run method


    def test_sum_1(self):
        self.assertEqual(mid(3, 2), 1, "Should be 2")
    def test_sum_2(self):
        self.assertEqual(mid(5, 5), 5, "Should be 5")
    def test_sum_3(self):
        self.assertEqual(mid(3, 3), 3, "Should be 3")
    def test_sum_4(self):
        self.assertEqual(mid(5, 3), 1, "Should be 4")
    def test_sum_5(self):
        self.assertEqual(mid(2, 4), 2, "Should be 2")
    def test_sum(self):
        self.assertEqual(mid(0, 2), 2, "Should be 2")

if __name__ == '__main__':
    unittest.main(exit=False)

, после чего я использую exe c () для запуска unitTest1.py в другом файле (Fitness.py), получив контекст unitTest1.py по пути D: \ documents \ KL \ Data \ unitTest1.py и выполнив метод exe c ():

import sys
import ast
import astor
sys.path.append('..')
from FaultLocalization.Tracer import Tracer
from FaultLocalization.DataReader import DataReader
from AstTree.AstHelper import AstHelper
class Fitness:
    def FitnessFunction(self):
        dT = DataReader()
        ctx = dT.getContextFileWithPath("D:\\docu\\KL\\Data\\unitTest1.py")
        exec (ctx)

if __name__ == '__main__':
    f = Fitness()
    f.FitnessFunction()

Возвращает «Выполнено 0 тестов за 0,000 с». Это почему? Когда я помещаю метод exe c () в основную функцию, он работает нормально, но я действительно хочу использовать FitnessFunction, как описано выше. Любой другой способ справиться с этим?

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