Δημοσιεύτηκε: 28 Ιαν 2012, 20:14
@sokoban4ever
Φαντάζομαι πλέον αναφέρεσαι σε αυτό το post: viewtopic.php?p=227050#p227050
Αυτό που λέω για τα tests είναι άσχετο με τη δομή των φακέλων. Αυτό που προσπαθούσα να κάνω είναι να τρέξω ένα test (unittest) μέσα από άλλο module.
Έστω ότι έχω στον ίδιο φάκελο τα αρχεία test_simple.py και run_tests.py.
Τα εκτελώ και τα δύο μέσα απ' τον φάκελο που βρίσκονται. Δεν έχει σημασία άλλωστε εδώ.
Φυσικά αν εκτελέσω το test_simple.py θα πάρω σαν έξοδο:
Το test έτρεξε κανονικά και μάλιστα πέρασε.
Αν τρέξω το run_test.py όμως η έξοδος θα είναι:
Δηλαδή το test δεν εκτελέστηκε! Φαντάζομαι ο λόγος είναι ότι ψάχνει για tests στο run_tests.py και φυσικά δεν υπάρχουν.
Αυτό είναι το πρόβλημα με τα tests.
Το πρόβλημα με τα imports είναι άλλο, ανεξάρτητο: viewtopic.php?p=226976#p226976
Edit: Στο παράδειγμα σου δεν νομίζω ότι χρειάζεται η __name__.
Φαντάζομαι πλέον αναφέρεσαι σε αυτό το post: viewtopic.php?p=227050#p227050
Αυτό που λέω για τα tests είναι άσχετο με τη δομή των φακέλων. Αυτό που προσπαθούσα να κάνω είναι να τρέξω ένα test (unittest) μέσα από άλλο module.
Έστω ότι έχω στον ίδιο φάκελο τα αρχεία test_simple.py και run_tests.py.
- Κώδικας: Επιλογή όλων
#test_simple.py
import unittest
class Simple(unittest.TestCase):
def test_basic_addition(self):
"""Tests that 1 + 1 always equals 2"""
self.assertEqual(1 + 1, 2)
if __name__ == '__main__':
unittest.main()
- Κώδικας: Επιλογή όλων
#run_tests.py
import test_simple
test_simple.unittest.main()
Τα εκτελώ και τα δύο μέσα απ' τον φάκελο που βρίσκονται. Δεν έχει σημασία άλλωστε εδώ.
Φυσικά αν εκτελέσω το test_simple.py θα πάρω σαν έξοδο:
Spoiler: show
Το test έτρεξε κανονικά και μάλιστα πέρασε.
Αν τρέξω το run_test.py όμως η έξοδος θα είναι:
Spoiler: show
Δηλαδή το test δεν εκτελέστηκε! Φαντάζομαι ο λόγος είναι ότι ψάχνει για tests στο run_tests.py και φυσικά δεν υπάρχουν.
Αυτό είναι το πρόβλημα με τα tests.
Το πρόβλημα με τα imports είναι άλλο, ανεξάρτητο: viewtopic.php?p=226976#p226976
Edit: Στο παράδειγμα σου δεν νομίζω ότι χρειάζεται η __name__.