我写了一个连接到SQLite3数据库并创建表的Python脚本。我创建了另一个Python文件来使用Pytest执行一些测试。出于某种原因,每当我运行测试文件时,主文件中的代码似乎也被执行了,并创建了一个表。我假设Pytest只会执行文件名开头或结尾带有test
的python文件。我不知道这是怎么回事。
我的py1.py
文件
import sqlite3
# Create sqlite3 table
def create_table(table_name):
try:
print('Creating table in db')
conn = sqlite3.connect('lite.db')
cur = conn.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS " + table_name + " (Id INTEGER)")
conn.commit()
conn.close()
print('Table successfully created')
except Exception as e:
print(e)
db_table_name = 'my_temp_table'
create_table(db_table_name)
如果我运行这个文件,就会像预期的那样创建一个名为my_temp_table
的空表。
现在我删除了my_temp_table
表,并尝试使用Pytest运行下面的test_py1.py
文件:
from py1 import create_table
def test_function():
assert true
它的预期行为是说1个测试通过了,它确实通过了,但沿着它也创建了一个名为my_temp_table
的表,这表明py1.py
也正在由Pytest运行。我不确定是什么触发了这一点。
1条答案
按热度按时间4c8rllxm1#
在
py1.py
文件的末尾添加此代码应该可以解决这个问题。