在另一个文件中测试.py文件

时间:2017-12-10 16:05:50

标签: python testing

我的算法中有一个.py文件。在这个文件的 init (self)中,我有一些变量需要在所有scenerios和我想要更改的2个变量中进行测试。我还创建了另一个.py文件,负责运行我的第一个文件x次,但每次都使用相同的变量。我的问题是我应该如何为我的第一个文件正确创建一个测试环境,用不同的变量运行它10次?

我想在10个不同场景中测试的.py文件示例。

class A:
  def __init__(self):
      self.xsize = 50                
      self.ysize = 50                 
      self.max_tx_power = 200     # Variable to change
      self.min_tx_pow = 10        # Variable to change

  def alforithm(self):
      power_steps = range(self.min_tx_pow, self.max_tx_power + 1)[0::10]

  def generator(self):
      self.algorithm()

if __name__ == "__main__":
a = A()
a.generator()

2 个答案:

答案 0 :(得分:0)

您需要对A类的构造函数进行一些更改。您的新构造函数看起来像这样:

  def __init__(self, max_tx_power = 200, min_tx_power = 10):
      self.xsize = 50                
      self.ysize = 50                 
      self.max_tx_power = min_tx_power     # Variable to change
      self.min_tx_pow = max_tx_power       # Variable to change

如果你需要在一个新文件中运行它来测试,你将加载这个类,因为你将从python中的任何模块加载一个类。只需确保两个文件都在同一目录中。假设你的第一个文件是util.py,那么第二个文件看起来像这样:

from util import A
#Alternatively you can also use import util and call A as util.A(x,y)

for i in range(10):
    a = A(300,30)
    a.generator()

答案 1 :(得分:0)

由于您希望在每次调用generator函数时更改变量,因此您希望传递变量。也许你的测试文件有这个: 来自PostClassA import *

for tests in range(10):
    b = A()
    power_steps = b.generator(200 - tests^2 , 10 + tests^3)
    print(f'Algorithm generated: {power_steps}')

然后在你的类变量周围移动(并修复代码中的语法错误)我最终在这里:

class A:
  def __init__(self):
      self.xsize = 50
      self.ysize = 50

  def algorithm(self,max_tx_power, min_tx_power):
      power_steps = range(min_tx_power, max_tx_power + 1)[0::10]
      return power_steps

  def generator(self, max_tx_power, min_tx_power):
      return self.algorithm(max_tx_power, min_tx_power)

if __name__ == "__main__":
    a = A()
    print(f'Class A default test generated: {a.generator(200, 10)}')

我不知道你的功能是什么意思,所以就像它一样。也不知道'默认'行动应该是。

*仍然有Python腿,我确信有更多正确的方法......我的目标是明确