ich habe folgendes doctest x.doctest
geschrieben:doctest nicht erkennen __future __ Division
This is something:
>>> x = 3 + 4
foo bar something else:
>>> from __future__ import division
>>> y = 15
>>> z = int('24')
>>> m = z/y
>>> print (m)
1.6
Aber wenn ich python -m doctest x.doctest
lief auf Python 2.7.11, die doctest nicht from __future__ import division
erkannte:
**********************************************************************
File "x.doctest", line 11, in x.doctest
Failed example:
print (m)
Expected:
1.6
Got:
1
**********************************************************************
1 items had failures:
1 of 6 in x.doctest
***Test Failed*** 1 failures.
Selbst wenn ich die zukünftige Importanweisung in die erste Zeile verschoben habe:
Die doctest immer noch nicht:
**********************************************************************
File "x.doctest", line 11, in x.doctest
Failed example:
print (m)
Expected:
1.6
Got:
1
**********************************************************************
1 items had failures:
1 of 6 in x.doctest
***Test Failed*** 1 failures.
Warum das so ist und wie kann ich dieses Problem lösen?
Gibt es eine Markierung/Option für Doctest, die sicherstellt, dass from __future__ import division
erkannt wird?
Hinweis: Ich könnte nur die Prüfung auf print (int(m))
oder y = 15.
erzwingen und der Doctest wird bestanden, aber das ist nicht so wünschenswert.
Nur um einige Fakten zu bestätigen, könnte der 'if __name__ == 'main':' Trick nur in einer 'x.py' Datei und nicht in einem' x.doctest' funktionieren, oder? – alvas
@alvas: Ich bin nicht vertraut mit .doctest Dateien. Ich vermute, dass Ihr Projekt diese explizit irgendwo mit einer 'DocFileSuite()' -Instanz lädt; setze die Globals auf * that *. –
@alvas: Der Code, der diese Dateien lädt, könnte selbst eine Parsing-Logik ausführen, um den Globals Kompilierflags basierend auf den Dateiinhalten hinzuzufügen. –